v1.51.0
rapidaai/voice-aiv1.51.0Jul 27, 2026by Kerollmops
AI Summary
This release enhances Dynamic Search Rules (DSRs) with new filter conditions and improves search performance, while stabilizing the dumpless upgrade process.
Key Highlights
- DSRs now support a new `filter` condition and include a `lastUpdatedAt` field.
- Search speed has improved significantly (up to 5.4x) by reducing disk reads.
- The `--experimental-dumpless-upgrade` flag has been renamed to `--upgrade-db`.
Breaking Changes
- Renamed `--experimental-dumpless-upgrade` to `--upgrade-db`.
- Removed experimental flags: `--experimental-replication-parameters`, `--experimental-no-edition-2024-for-dumps`, and `--experimental-no-snapshot-compaction`.
New Features
- New environment variables for controlling DSR fuel behavior (`MEILI_EXPERIMENTAL_DSR_FUEL_FILTER_*`).
Full Release Notes
### ✨ 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