⚠️ Breaking Change
Impact Score: 7/10
Meilisearch: v1.51.0 👽
Source available — automated, not human-reviewed
Component: meilisearch · Channel: stable. Automated analysis, not a compatibility certification. How this works.
Analysis updated: 2026-11-01.
Breaking-change evidence from the source
⚠️ Breaking change following the stabilization of an experimental feature ⚠️
⚠️ Breaking change: removing the following experimental features ⚠️
⚡ Executive Summary (TL;DR)
Meilisearch v1.51.0. Source highlight: **Add filter condition to DSRs**
Who Does This Impact? (Role-Based Analysis)
💻 Software Engineers & Devs
Check the source notes against the package and APIs you use before upgrading.
📊 Product & Engineering Leads
Use the documented changes to assess relevance to your product; release frequency alone is not a quality measure.
⚙️ DevOps & Security
Verify the target version, runtime requirements and rollback procedure in the official documentation.
⚠️ Breaking Changes & Deprecations (2)
- ⚠️ Breaking change following the stabilization of an experimental feature ⚠️
- ⚠️ Breaking change: removing the following experimental features ⚠️
✨ New Features & Capabilities (3)
- **Add filter condition to DSRs**
- **Remove unused experimental features**
- Add missing logs in multisearch
🔧 Bug Fixes & Patches (4)
- Import dumps with old document indexer fallback: removing `--experimental-no-edition-2024-for-dumps`. This flag existed to prevent bugs related to our new indexer, which is now stable.
- Make sure legacy attribute patterns work
- Missing support for the shorthand filterable attributes syntax
- Docs: Fix stale pre-v1.0 supported versions statement
📄 View Raw Release Notes (Original Developer Log)
### ✨ Enhancement
- **Add filter condition to DSRs** by @dureuill in https://github.com/meilisearch/meilisearch/pull/6505
#### New `filter` rule activation condition
Dynamic search rules (DSR) can now declare a new `filter` condition: it contains a single `values` key, whose value is a JSON object.
The keys of this `values` JSON object are the facet names (e.g., `color`, `genres`, ...), while their values are the values that a filter must resolve to for these facets, so that the rule is active.
<details>
<summary>Example of sending a DSR with a filter condition</summary>
```jsonc
// PATCH /dynamic-search-rules/test-filter
{
"conditions": {
"filter": {
"values": {
"color": "red",
"category": "shirt"
}
}
},
"actions": [
{
"selector": { "id": "red shirt on sales" },
"action": { "type": "pin", "position": 0 }
}
]
}
```
</details>
<details>
<summary>Example of search query that enables the DSR above</summary>
```jsonc
{
"filter": "(category = shirt AND color = red) OR (category = jeans AND color = blue)"
}
```
</details>
Note that the filter only needs to have one branch resolving to all the facet values declared in the rule for the rule to be active.
#### New `lastUpdatedAt` field
Dynamic search rules returned by `GET /dynamic-search-rules/{:ruleUid}` and `POST /dynamic-search-rules` contain an additional `lastUpdatedAt` field.
This field is automatically updated with the `enqueuedAt` value of the last task that modified the rule.
#### Rules are listed with the most recently updated first
`POST /dynamic-search-rules` now lists rules in descending `lastUpdatedAt` order, meaning that the most recently updated rules will be listed first.
#### New environment variables
New environment variables are defined to control the behavior of the DSR fuel:
- `MEILI_EXPERIMENTAL_DSR_FUEL_FILTER_FUEL` (in range 0..4294967296): controls how many filter constraint combinations Meilisearch will attempt to resolve at search time before giving up and applying partial rules.
- `MEILI_EXPERIMENTAL_DSR_FUEL_FILTER_OR_FUEL` (in range 0..65536): controls how many filter disjunctions Meilisearch will build when turning a filter to its canonical shape
- `MEILI_EXPERIMENTAL_DSR_FUEL_FILTER_AND_FUEL` (in range 0..65536): controls how many filter conjunctions Meilisearch will build in total when turning a filter to its canonical shape
- `MEILI_EXPERIMENTAL_DSR_FUEL_FILTER_DEPTH_FUEL` (in range 0..256): controls the maximum recursive depth that Meilisearch allows when turning a filter to its canonical shape
- **Speed up search requests** by @Kerollmops in https://github.com/meilisearch/meilisearch/pull/6528
Improves Meilisearch search speed by avoiding unnecessary internal work. We drastically reduced the number of times we retrieve data from disk to a single time across the whole search pipeline. This improvement will have the greatest effect on datasets with a large number of distinct fields across documents. We have seen search speeds up to 5.4x on a dataset with more than 14k different fields.
- **Stabilize dumpless upgrade** by @curquiza in https://github.com/meilisearch/meilisearch/pull/6486
⚠️ Breaking change following the stabilization of an experimental feature ⚠️
The flag `—-experimental-dumpless-upgrade` is renamed `—-upgrade-db`, keeping the exact same behavior.
- **Remove unused experimental features** by @curquiza in https://github.com/meilisearch/meilisearch/pull/6489
⚠️ Breaking change: removing the following experimental features ⚠️
- [Replication parameters](https://github.com/orgs/meilisearch/discussions/725): removing `--experimental-replication-parameters` because outdated. We now have another way to handle replication.
- [Import dumps with old document indexer fallback](https://github.com/orgs/meilisearch/discussions/851): removing `--experimental-no-edition-2024-for-dumps`. This flag existed to prevent bugs related to our new indexer, which is now stable.
- [No snapshot compression](https://github.com/orgs/meilisearch/discussions/833): removing `--experimental-no-snapshot-compaction` because it's not useful anymore.
### 🪲 Bug fixes
- Make sure legacy attribute patterns work by @Kerollmops in https://github.com/meilisearch/meilisearch/pull/6531
- Missing support for the shorthand filterable attributes syntax
### 🔩 Miscellaneous
- Add missing logs in multisearch by @ManyTheFish in https://github.com/meilisearch/meilisearch/pull/6529
- Docs: Fix stale pre-v1.0 supported versions statement by @vishnujayvel in https://github.com/meilisearch/meilisearch/pull/6524
- Bump sigstore/cosign-installer from 4.1.1 to 4.1.2 by @dependabot[bot] in https://github.com/meilisearch/meilisearch/pull/6427
- Bump actions/github-script from 7 to 9 by @dependabot[bot] in https://github.com/meilisearch/meilisearch/pull/6425
- Bump actions/upload-artifact from 4 to 7 by @dependabot[bot] in https://github.com/meilisearch/meilisearch/pull/6428
## New Contributors
- @vishnujayvel made their first contribution in https://github.com/meilisearch/meilisearch/pull/6524