Impact Score: 5/10
Meilisearch: v0.29.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.
β‘ Executive Summary (TL;DR)
Meilisearch v0.29.0. Source highlight: β οΈ If you have a compatibility issue with libc (for example, with Debian 10) use v0.29.1 instead. See this issue.
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.
β¨ New Features & Capabilities (6)
- meilisearch-dart and meilisearch-swift: though you can use still use both libraries with v0.29.0, the `matchingStrategy` feature is not yet available. Let us know if you really need itβand contributions are always welcome!
- The filter `price EXISTS` will select documents `1`, `3`, and `4`.
- The filter `price IN [30, 20]` will select documents `1` and `3`.
- Add analytics to the `/stats` routes (#2674) @irevoire
- Internal feature: integrate `/metrics` route (#2657) @pavo-tusker
- Add Dependabot for GHA (#2561) @curquiza
π§ Bug Fixes & Patches (6)
- Clamp max size of databases to a multiple of system page size (#2662) @ManyTheFish
- Prevent whitespace trimming during document id validation (#2636 and meilisearch/milli#599) @ManyTheFish
- Support https in `print_launch_resume` (#2664) @evpeople
- Filters: reserved keywords must wrapped in quotation marks when used field names/values (#2636 and meilisearch/milli#596) @loiclec
- Fix filtering selection (#2636 and meilisearch/milli#568) @GraDKh
- Fix typo (#2508, #2517, #2556) @ryanrussell
π View Raw Release Notes (Original Developer Log)
β οΈ If you have a compatibility issue with libc (for example, with Debian 10) use [v0.29.1](https://github.com/meilisearch/meilisearch/pull/2862) instead. See [this issue](https://github.com/meilisearch/meilisearch/issues/2850).
This release includes a much-requested feature: an option to require all query terms to be present in search results. The absence of this feature prevented some users from upgrading to newer Meilisearch versions. Additionally, v0.29 contains several indexing speed improvements.
π§° Most integrations (SDKs, clients, libraries) will be compatible with this version within four hours of the release. Sometimes this can take up to 24 hours, depending on the issues we encounter during the release.
Here is the exhaustive list of integrations **not compatible** with v0.29.0:
- [meilisearch-dart](https://github.com/meilisearch/meilisearch-dart) and [meilisearch-swift](https://github.com/meilisearch/meilisearch-swift): though you can use still use both libraries with v0.29.0, the [`matchingStrategy` feature](#customize-matching-strategy) is not yet available. Let us know if you really need itβand contributions are always welcome!
- [meilisearch-java](https://github.com/meilisearch/meilisearch-java): Our team is still working on refactoring the code, and the SDK cannot be used with v0.29.0. Follow the repository to know when it will be compatible.
# New features and improvements π₯
## Customize matching strategy
It is now possible to control how Meilisearch matches documents during search by choosing to return only documents containing **all** query terms.
### How to activate it?
```bash
curl \
-X POST 'http://localhost:7700/indexes/movies/search' \
-H 'Content-Type: application/json' \
--data-binary '{ "q": "american ninja", "matchingStrategy": "all" }'
```
By setting `"matchingStrategy": "all"` In the above example, we ensure Meilisearch will only return documents containing both "american" AND "ninja".
Meilisearch's default matching strategy is `last`. It will still return documents containing all the query words, followed by documents that don't contain all the query words.
Check out the [documentation for more information on `matchingStrategy`](https://docs.meilisearch.com/reference/api/search.html#matching-strategy).
Made by @ManyTheFish in #2578 and meilisearch/milli#598.
## Thai language support
Meilisearch now offers optimized support for Thai πΉπ
Want optimized support for your language? Consider contributing to the [Meilisearch tokenizer](https://github.com/meilisearch/charabia) by following the CONTRIBUTING.md file and integrating your intended normalizer/segmenter.
The core team is always happy to help our contributors. Do drop us a line if you need us to clarify anything!
Made by our dear contributor @aFluffyHotdog and by @ManyTheFish in meilisearch/charabia#114, meilisearch/charabia#115, meilisearch/milli##611, and #2636.
## Performance improvements for indexing
We improved Meilisearch's indexing speed, especially for indexes using `filterableAttributes` and when updating and deleting documents.
For more information on the main improvements, check out the following issues: meilisearch/product#513 and meilisearch/product#520.
Made by @loiclec and @irevoire in #2689, #2690, meilisearch/milli#607, meilisearch/milli#606, meilisearch/milli#587, meilisearch/milli#557,meilisearch/milli#579, and meilisearch/milli#590.
## Filtering: introduce the `EXISTS` and `IN` operators
You can now use the `EXISTS` and `IN` operators with the `filter` search parameter during [search](https://docs.meilisearch.com/reference/api/search.html#search-in-an-index-with-post-route).
With the following set of documents:
```json
{ "id": 1, "product": "T-shirt", "price": 20, "color": "yellow" }
{ "id": 2, "product": "T-shirt", "color": "red" }
{ "id": 3, "product": "T-shirt", "price": 30 }
{ "id": 4, "product": "T-shirt", "price": 40 }
```
- The filter `price EXISTS` will select documents `1`, `3`, and `4`.
- The filter `price IN [30, 20]` will select documents `1` and `3`.
These operators can be combined with the existing `NOT` (`!=`) operator.
Read more about [filtering in Meilisearch's documentation](https://docs.meilisearch.com/learn/getting_started/filtering_and_sorting.html).
Made by @loiclec in #2636, meilisearch/milli#596, and meilisearch/milli#556.
## Key management
When managing [keys](https://docs.meilisearch.com/learn/security/master_api_keys.html#protecting-a-meilisearch-instance), the `*` helper can now be used to express a set of actions in the `actions` array.
For example, instead of specifying `indexes.create`, `indexes.get`, `indexes.update`, `indexes.delete`; you can now use `indexes.*`.
Made by our dear contributors @Mcdostone and @phdavis1027 in #2080 and #2579.
# Behavior changes β οΈ
## Auto-batching
This previously experimental feature is now enabled by default.
If you enabled auto-batching in previous versions using `--enable-auto-batching`, remove this flag when running Meilisearch v0.29.0. All other auto-batching settings (`--debounce-duration-sec`, `--max-batch-size`, and `--max-documents-per-batch`) have been removed.
If you did not enable auto-batching before, the transition should be seamless and increase indexing speed ποΈ
If you experience any issues during indexing, try using `--disable-auto-batching` flag (or the environment variable `MEILI_DISABLE_AUTO_BATCHING`).
Made by @Kerollmops in meilisearch/milli#561, #2523, and #2677.
## `!=` (`NOT`) filter operator
This behavior change is consistent with the `EXISTS` and `IN` operators. The `NOT` filter now also matches documents missing the specified attributes.
More explanation with examples [here](https://github.com/meilisearch/meilisearch/issues/2486).
Made by @loiclec in #2636, and meilisearch/milli#596.
# Fixes π
* Clamp max size of databases to a multiple of system page size (#2662) @ManyTheFish
* Prevent whitespace trimming during document id validation (#2636 and meilisearch/milli#599) @ManyTheFish
* Support https in `print_launch_resume` (#2664) @evpeople
* Filters: reserved keywords must wrapped in quotation marks when used field names/values (#2636 and meilisearch/milli#596) @loiclec
* Fix filtering selection (#2636 and meilisearch/milli#568) @GraDKh
# Misc
* Completely rework the README (#2504) @CaroFG, @curquiza, @guimachiavelli, and @gmourier
* Add analytics to the `/stats` routes (#2674) @irevoire
* Update link to Cloud beta form (#2625) @davelarkan
* Internal feature: integrate `/metrics` route (#2657) @pavo-tusker
* Fix typo (#2508, #2517, #2556) @ryanrussell
* Use nightly for `cargo fmt` in CI (#2519) @curquiza
* Fix content of dump/assets for testing (#2544) @loiclec
* Add Dependabot for GHA (#2561) @curquiza
* Update Docker credentials (#2539) @curquiza
* Add new CI: cron GHA to create an issue "Update dependencies" (#2585) @VasiliySoldatkin
* Add a dedicated section for Language Support in the issue template (#2592) @ManyTheFish
β€οΈ Thanks again to our external contributors:
- [Meilisearch](https://github.com/meilisearch/meilisearch): @evpeople, @Mcdostone, @pavo-tusker, @phdavis1027, @ryanrussell, and @VasiliySoldatkin.
- [Milli](https://github.com/meilisearch/milli): @GraDKh.
- [Charabia](https://github.com/meilisearch/charabia): @aFluffyHotdog, @matthias-wright, and @mosuka.