Skip to content

meilisearch 1.50.0 - #294124

Merged
BrewTestBot merged 2 commits into
mainfrom
bump-meilisearch-1.50.0
Jul 20, 2026
Merged

meilisearch 1.50.0#294124
BrewTestBot merged 2 commits into
mainfrom
bump-meilisearch-1.50.0

Conversation

@BrewTestBot

Copy link
Copy Markdown
Contributor

Created by brew bump


Created with brew bump-formula-pr.

Details

release notes
Meilisearch v1.50 revamps the [Dynamic Search Rules](https://www.meilisearch.com/docs/capabilities/search_rules/overview), adds support for federated document fetch in sharded configurations, among other improvements

Breaking changes

This release introduces breaking changes for users using some experimental features

dynamicSearchRules experimental feature

Request type changes

  1. priority has been replaced with precedence, which better reflects the behavior (lower precedence means the rule is applied first)
  2. conditions has been modified from an array to an object with two fields: "query" of type QueryCondition and "time" of time TimeCondition
  3. New type QueryCondition that contains the fields isEmpty (as previously) and words instead of contains (same type)
  4. It is now possible to pass isEmpty: false with words in a QueryCondition. Passing isEmpty:true with words still results in a synchronous error.
  5. New type TimeCondition with fields start and end (unchanged semantics from previous type).
  6. When specifying the selector of an Action, it is now mandatory to specify an id. Previously, it was optional, but the action would never trigger.
  7. When listing rules with POST /dynamic-search-rules, filter.attributePatterns has been replaced with filter.query, an optional string that searches in rule description and conditions.query.words.
  8. When calling DELETE /dynamic-search-rules/{:ruleUid} or PATCH /dynamic-search-rules/{:ruleUid} in a sharded configuration, endpoint will not return a HTTP 400 error if called on a follower remote rather than on the leader.

Response changes

  1. PATCH /dynamic-search-rules/{:ruleUid} and DELETE /dynamic-search-rules/{:ruleUid} now register an asynchronous task..
  2. The response is modified to return the registered task instead of the modified dynamic search rule.
  3. HTTP 404 is no longer returned if the {:ruleUid} portion of the URL refers to a rule that doesn't exist. This is because rules are processed asynchronously, and is consistent with the behavior of DELETE /indexes/{:indexUid}/documents/{:docId} for {:docId}

network experimental feature

🌈 Improvements

Scaling up the Dynamic Search Rules

  • Dynamic search rules scale up to 75K rules without any impact on the search
  • The API of Dynamic Search Rules has been simplified
    • It is harder to send conditions that will result in the rules never activating
  • This also unlocks future improvements such as filter activation conditions for search rules

Additions

  • Add a new DELETE /dynamic-search-rule route that deletes all the DSRs
  • Add the concept of "DSR fuel" that determines how much energy is spent resolving DSR during a search. The fuel is initialized with some default variables that can be overridden using environment variables:
    • MEILI_EXPERIMENTAL_DSR_FUEL_MAX_COUNTED_WORDS: max number of words considered inside of a search query for the purpose of finding conditions.query.words constraints. Defaults to 10, max value is 255
    • MEILI_EXPERIMENTAL_DSR_FUEL_MAX_ACTIVE_RULES: max number of active rules whose actions are evaluated. Defaults to 1000, max value is 4294967295
    • MEILI_EXPERIMENTAL_DSR_FUEL_MAX_PIN_ACTIONS: max number of pin actions that are applied. Defaults to 100, max value is 4294967295
    • MEILI_EXPERIMENTAL_DSR_FUEL_WORD_FUEL: max number of constraint combinations that are evaluated for the purpose of finding conditions.query.words constraints. Defaults to 4096, max value is 4294967295

By @dureuill in meilisearch/meilisearch#6484 and meilisearch/meilisearch#6506

Behavior changes

  • The conditions.query.words behaves differently from query.contains: previously, a rule would match if its conditions query.contains would be substrings of q in the search query in the sense of str::contains. Now, a rule matches if all the words in conditions.query.words appear in q (after normalization). For q = hero super, query.contains = super hero would not match, whereas conditions.query.words = super hero does now match. This behavior is more in line with regular search, and allows improving performance.
  • Dynamic search rules are now replicated from the leader to its follower, when in a sharded configuration

Federated document fetch routes

by @ManyTheFish in meilisearch/meilisearch#6495

Support partial wildcards when requesting facets

by @Kerollmops in meilisearch/meilisearch#6497

🦋 Fixes

Fix migration from v1.48 and earlier

by @Kerollmops in meilisearch/meilisearch#6501

Fix filter memory consumption in some cases

No longer reject some correctly-escaped filters

by @dureuill in meilisearch/meilisearch#6499

More fault-tolerant S3 snapshots

by @Kerollmops in meilisearch/meilisearch#6494

🔩 Miscellaneous changes

Full Changelog: meilisearch/meilisearch@v1.49.0...v1.50.0

View the full release notes at https://github.com/meilisearch/meilisearch/releases/tag/v1.50.0.


@github-actions github-actions Bot added rust Rust use is a significant feature of the PR or issue bump-formula-pr PR was created using `brew bump-formula-pr` labels Jul 20, 2026
@github-actions

Copy link
Copy Markdown
Contributor

🤖 An automated task has requested bottles to be published to this PR.

Caution

Please do not push to this PR branch before the bottle commits have been pushed, as this results in a state that is difficult to recover from. If you need to resolve a merge conflict, please use a merge commit. Do not force-push to this PR branch.

@github-actions github-actions Bot added the CI-published-bottle-commits The commits for the built bottles have been pushed to the PR branch. label Jul 20, 2026
@BrewTestBot
BrewTestBot enabled auto-merge July 20, 2026 10:02
@BrewTestBot
BrewTestBot added this pull request to the merge queue Jul 20, 2026
Merged via the queue into main with commit 9590b02 Jul 20, 2026
22 checks passed
@BrewTestBot
BrewTestBot deleted the bump-meilisearch-1.50.0 branch July 20, 2026 10:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bump-formula-pr PR was created using `brew bump-formula-pr` CI-published-bottle-commits The commits for the built bottles have been pushed to the PR branch. rust Rust use is a significant feature of the PR or issue

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants