meilisearch @ v0.29.0
integrity
- size
- 12.5 MiB
- downloaded
- last checked
release notes
⚠️ If you have a compatibility issue with libc (for example, with Debian 10) use v0.29.1 instead. See this issue.
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 and meilisearch-swift: though you can use still use both libraries with v0.29.0, the
matchingStrategyfeature is not yet available. Let us know if you really need it—and contributions are always welcome! - 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?
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.
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 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.
With the following set of documents:
{ "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 EXISTSwill select documents1,3, and4. - The filter
price IN [30, 20]will select documents1and3.
These operators can be combined with the existing NOT (!=) operator.
Read more about filtering in Meilisearch's documentation.
Made by @loiclec in #2636, meilisearch/milli#596, and meilisearch/milli#556.
Key management
When managing keys, 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.
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
/statsroutes (#2674) @irevoire - Update link to Cloud beta form (#2625) @davelarkan
- Internal feature: integrate
/metricsroute (#2657) @pavo-tusker - Fix typo (#2508, #2517, #2556) @ryanrussell
- Use nightly for
cargo fmtin 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: @evpeople, @Mcdostone, @pavo-tusker, @phdavis1027, @ryanrussell, and @VasiliySoldatkin.
- Milli: @GraDKh.
- Charabia: @aFluffyHotdog, @matthias-wright, and @mosuka.
download
curl -fL -o v0.29.0.zip https://ratatoskr.space/pkg/meilisearch/v0.29.0.zip
printf '%s %s\n' '17ed6282e5437831be45ed5943fe96e095a944da2b4f763770f559294baa7875' 'v0.29.0.zip' | sha256sum -c -
$url = "https://ratatoskr.space/pkg/meilisearch/v0.29.0.zip"
$out = "v0.29.0.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "17ed6282e5437831be45ed5943fe96e095a944da2b4f763770f559294baa7875") { throw "sha256 mismatch" }
curl -fL -o v0.29.0.tar.gz https://ratatoskr.space/pkg/meilisearch/v0.29.0.tar.gz
printf '%s %s\n' '9ccd461e5925a7570f46a77febf55e92ba10f962fbe7fb04af8c47e17e4e0eb0' 'v0.29.0.tar.gz' | sha256sum -c -
$url = "https://ratatoskr.space/pkg/meilisearch/v0.29.0.tar.gz"
$out = "v0.29.0.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "9ccd461e5925a7570f46a77febf55e92ba10f962fbe7fb04af8c47e17e4e0eb0") { throw "sha256 mismatch" }
download via yggdrasil mesh
curl -fL -o v0.29.0.zip http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meilisearch/v0.29.0.zip
printf '%s %s\n' '17ed6282e5437831be45ed5943fe96e095a944da2b4f763770f559294baa7875' 'v0.29.0.zip' | sha256sum -c -
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meilisearch/v0.29.0.zip"
$out = "v0.29.0.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "17ed6282e5437831be45ed5943fe96e095a944da2b4f763770f559294baa7875") { throw "sha256 mismatch" }
curl -fL -o v0.29.0.tar.gz http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meilisearch/v0.29.0.tar.gz
printf '%s %s\n' '9ccd461e5925a7570f46a77febf55e92ba10f962fbe7fb04af8c47e17e4e0eb0' 'v0.29.0.tar.gz' | sha256sum -c -
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meilisearch/v0.29.0.tar.gz"
$out = "v0.29.0.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "9ccd461e5925a7570f46a77febf55e92ba10f962fbe7fb04af8c47e17e4e0eb0") { throw "sha256 mismatch" }
| artifact | format | size | hashes |
|---|---|---|---|
| v0.29.0.zip | zip | 12.5 MiB |
blake3-24 f65599924201274e394474936f895859ec3158b5be9a3c82
sha256 17ed6282e5437831be45ed5943fe96e095a944da2b4f763770f559294baa7875
sha1 f5f97d61179851be15bc301a0ae02db26a2eed82
|
| v0.29.0.tar.gz | tar.gz | 12.4 MiB |
blake3-24 9dbdfcc9478c656a1253ac92b2813b157880175467de20fe
sha256 9ccd461e5925a7570f46a77febf55e92ba10f962fbe7fb04af8c47e17e4e0eb0
sha1 787d68f91ce662c1e9045015850d7d50f1804e51
|
install
http_archive(
name = "meilisearch",
urls = ["https://ratatoskr.space/pkg/meilisearch/v0.29.0.tar.gz"],
integrity = "sha256-nM1GHlklp1cPRqd/6/VekroQ+WL75/sEr4xH4X5ODrA=",
strip_prefix = "meilisearch-v0.29.0",
)
.url = "https://ratatoskr.space/pkg/meilisearch/v0.29.0.tar.gz",
install via yggdrasil mesh
http_archive(
name = "meilisearch",
urls = ["http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meilisearch/v0.29.0.tar.gz"],
integrity = "sha256-nM1GHlklp1cPRqd/6/VekroQ+WL75/sEr4xH4X5ODrA=",
strip_prefix = "meilisearch-v0.29.0",
)
.url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meilisearch/v0.29.0.tar.gz",