This release includes 4 breaking changes for platform teams planning a safe upgrade.
✓ No known CVEs patched in this version
Topics
+13 more
Affected surfaces
Summary
AI summaryUpdates β¨ Enhancement, π© Miscellaneous, and πͺ² Bug fixes across a mixed release.
Full changelog
β¨ Enhancement
-
Add filter condition to DSRs by @dureuill in https://github.com/meilisearch/meilisearch/pull/6505
New
filterrule activation conditionDynamic search rules (DSR) can now declare a new
Example of sending a DSR with a filter conditionfiltercondition: it contains a singlevalueskey, whose value is a JSON object.
The keys of thisvaluesJSON 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.
Example of search query that enables the DSR above// 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 } } ] }{ "filter": "(category = shirt AND color = red) OR (category = jeans AND color = blue)" }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
lastUpdatedAtfieldDynamic search rules returned by
GET /dynamic-search-rules/{:ruleUid}andPOST /dynamic-search-rulescontain an additionallastUpdatedAtfield.This field is automatically updated with the
enqueuedAtvalue of the last task that modified the rule.Rules are listed with the most recently updated first
POST /dynamic-search-rulesnow lists rules in descendinglastUpdatedAtorder, 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 shapeMEILI_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 shapeMEILI_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-upgradeis 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: removing
--experimental-replication-parametersbecause outdated. We now have another way to handle replication. - 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. - No snapshot compression: removing
--experimental-no-snapshot-compactionbecause it's not useful anymore.
- Replication parameters: removing
πͺ²Β 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
Breaking Changes
- --experimental-dumpless-upgrade flag renamed to --upgrade-db
- Removed experimental replication parameters flag (--experimental-replication-parameters)
- Removed experimental importβdump fallback flag (--experimental-no-edition-2024-for-dumps)
- Removed experimental no snapshot compression flag (--experimental-no-snapshot-compaction)
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About meilisearch
A lightning-fast search engine API bringing AI-powered hybrid search to your sites and applications.
Related context
Related tools
Earlier breaking changes
- v1.50.0 `selector` of an `Action` now requires mandatory `id` field in dynamic search rules.
- v1.50.0 `filter.attributePatterns` replaced with `filter.query` in listing dynamic search rules endpoint.
- v1.50.0 `conditions.query.words` replaces `contains` in QueryCondition of dynamic search rules.
- v1.50.0 `conditions` changed from array to object with `query` and `time` fields in dynamic search rules.
- v1.50.0 `priority` replaced with `precedence` in dynamic search rules.
Beta — feedback welcome: [email protected]