Releases: meilisearch/meilisearch
v1.25.0 πββ¬
β¨ Enhancement
π¬ [Experimental]: Search personalization by @ManyTheFish in #5775
Add the ability to dynamically rerank the search results based on Cohere using a personalized prompt.
For more information on how to set it up, see the dedicated experimental feature discussion.
π¬ [Experimental]: Upload snapshot tarballs to S3 by @Kerollmops in #5948
Add the ability to upload snapshots directly to S3. It has many advantages, such as being able to stream the entire process and effectively utilizing multipart technology to send chunks of data in parallel.
For more information on how to use it, see the dedicated experimental feature discussion.
πͺ²Β Bug fixes
β οΈ [Breaking - Security] Redact Authorization header in webhooks by @dureuill in #5968
The value of the Authorization header is now redacted when getting webhook, getting webhooks, or in the object returned when posting a new webhook or deleting a webhook.
- Impact on Cloud: Similarly to embedder API, the UI should make sure to never send the
Authorizationheader back after it has been redacted - Technically a breaking change, as users could previously get the key value back when getting the webhook, and that will no longer be possible
π° Fix the LMDB fork memory leak by @Kerollmops in #5967
This bug was causing crashes in the recent indexer optimizations. If you deactivated these optimizations by setting the following environment variables:
MEILI_EXPERIMENTAL_NO_EDITION_2024_FOR_PREFIX_POST_PROCESSING=true
MEILI_EXPERIMENTAL_NO_EDITION_2024_FOR_FACET_POST_PROCESSING=true
You can now safely reactivate them without experiencing memory leaks.
π©πͺ Hotfix German word segmentation by @ManyTheFish in meilisearch/charabia#360
German word segmentation relies on a word dictionary to segment words, but if a word is not part of the dictionary, it is cut into bigrams. The segmenter will now skip segmenting unknown words:
Source: "Feuchteschutz"
Before: ["Fe" "uc" "ht" "es, "ch", "utz"]
After: ["Feuchteschutz"]
Source: "insgesamt"
Before: ["in" "sg" "es" "amt"]
After: ["insgesamt"]If you have a Meilisearch database containing German words, you must reindex your data manually.
π¨π³ Prevent splitting of numbers and English words in Chinese text segmentation by @JinheLin in meilisearch/charabia#354
Itβs very common for Chinese, numbers, and English to appear together in the same sentence.
We now ensure that numbers and English are not segmented differently between segmenters:
Source: "ζδ»2025εΉ΄εΌε§ε¦δΉ Rustθ―θ¨γ"
Before: ["ζ", "δ»", "2", "0", "2", "5", "εΉ΄", "εΌε§", "ε¦δΉ ", "R", "u", "s", "t", "θ―θ¨", "γ"]
After: ["ζ", "δ»", "2025", "εΉ΄", "εΌε§", "ε¦δΉ ", "Rust", "θ―θ¨", "γ"]If you have a Meilisearch database containing Chinese words, you must reindex your data manually.
π© Miscellaneous
- Add Flickr example to README by @Kerollmops in #5961
Thanks to @JinheLin, @dureuill, @Kerollmops, and @ManyTheFish for their contribution! π
v1.24.0 π¦
This release features some improvements with the interaction of the vector store and the searchCutoffMs when using the "vectorStore": "experimental" index setting. It also introduces the metadata header Meili-Include-Metadata on the search request that adds a metadata field to the response. These metadatas contains one uid by query and a reminder of the indexUid and its primary key. We also introduced minor bug fixes around the compaction to improve the interaction with task cancellation.
β¨ Enhancement
- Improve the vector store search cutoff by @dureuill in #5945
- Improve compaction behaviors by @Kerollmops in #5946
- Search metadata by @ManyTheFish in #5926
π© Miscellaneous
- Adapt the standards of prototypes by @curquiza in #5942
- Bump Dockerfile alpine version to 3.22 by @PedroTroller in #5866
π₯ New Contributors
- @PedroTroller made their first contribution in #5866
Full Changelog: v1.23.0...v1.24.0
v1.23.0 π
This release introduces a new compact route on the index routes, which appends a new compaction task to the queue. Meilisearch uses an LMDB environment by index, and indexes start to fragment after some time. We have noticed that the indexes generally have 30% fragmentation. By defragmenting the environment, we've seen large (2-4x) speed-ups in terms of search and indexation. This is primarily due to the reordering of the LMDB internal pages and the removal of scattered free pages throughout the file, thereby relocating the content to the beginning.
We also worked on parallelizing the post-processing of facets. We noticed that a lot of time was spent iterating over the prefixes of the index in a single-threaded loop. We redesigned this part of the indexation to make it multi-threaded. We have seen a 4x and 6x improvement in terms of time spent on this operation.
β¨ Improvements
- Introduce a task to compact an index by @Kerollmops in #5929
- Parallelize bulk facets & word prefix fid/position docids by @Kerollmops in #5307
- Change Java version in SDK CI by @curquiza in #5910
- Minor improvement in OpenAPI CI by @curquiza in #5834
- Add request uid to search routes by @ManyTheFish in #5863
π¦ Bug Fixes
- Fix ranking score bug when sort is present by @ManyTheFish in #5933
- Synonym performance fix by @ManyTheFish in #5930
- Update README.md to fix newsletter link by @EazyAl in #5911
- Try to fix GH license detection again by @dureuill in #5938
π© Miscellenaous
- Remove release-drafter and encourage usage of GitHub-generated notes by @curquiza in #5935
- Show Dependabot dependency upgrade in the changelog by @curquiza in #5900
- Bump actions/setup-go from 5 to 6 by @dependabot[bot] in #5912
- Bump actions/setup-dotnet from 4 to 5 by @dependabot[bot] in #5914
- Bump actions/setup-node from 4 to 5 by @dependabot[bot] in #5915
- Bump sigstore/cosign-installer from 3.9.2 to 3.10.0 by @dependabot[bot] in #5916
- Bump actions/setup-python from 5 to 6 by @dependabot[bot] in #5913
New Contributors
Full Changelog: v1.22.1...v1.23.0
v1.22.3 π¦βπ₯
This version contains a minor fix that affects remote federated search users. If you are not a remote federated search user, it is not necessary to migrate from v1.22.x.
π¦ Bugfixes
- v1.22.2 raised the remote federated search timeout for waiting nodes from 5 to 30s. This version makes it configurable by setting the environment variable
MEILI_EXPERIMENTAL_REMOTE_SEARCH_TIMEOUT_SECONDSto a positive integer value. Please note that no CLI flag or configuration entry is available. By @dureuill in #5932
v1.22.2 π¦βπ₯
v1.22.1
v1.22.0 π¦βπ₯
π Enhancements
- Introduce a new geo backend to store geojson and filter on polygon
- Make the
_geojsonfield filterable - Then send your documents with a
_geojsonfield filled with a valid geojson - Filter your documents with the new
_geoPolygonfilter, or the old_geoBoudingBoxand_geoPointsfilter
- Make the
π Bug Fixes
- Document template: Correctly render when indexing first item in array by @dureuill in #5896
- arroy to hannoy conversion fails with binary quantized distances by @nnethercott #5891
β€οΈ Huge thanks to our contributors: @nnethercott, @Kerollmops, @ManyTheFish, @dureuill and @irevoire.
Full Changelog: v1.21.0...v1.22.0
v1.21.0 π·
π Enhancements
- Introduce a new vector store backend for better performance, especially if using the binary quantization
- Enable the new
vectorStoreSettingexperimental feature - Then change the
vectorSettingindex setting to"experimental"for the indexes where you want to try the new vector store
- Done in #5767 by @Kerollmops
- Enable the new
- Add Persian support (update charabia to v0.9.7) (#5848) @ManyTheFish
π Bug Fixes
- Observing the progress trace during indexing no longer removes parts of the trace (#5884) @irevoire
- Fix dumpless upgrade
decoding errorwhen upgrading with arestembedder (#5886) @dureuill.- In case you had encountered the issue, use the dumpless upgrade to v1.21 to fix it.
β€οΈ Huge thanks to our contributors: @ja7ad, @agourlay, @Kerollmops, @ManyTheFish, @dureuill and @irevoire.
v1.20.0 π¦
π Enhancements
π Bug Fixes
π Security
- Bump tracing-subscriber from 0.3.19 to 0.3.20 (#5869) @dependabot[bot]
βοΈ Maintenance/misc
- Fix scheduled CI failure (#5856) @arithmeticmean
β€οΈ Huge thanks to our contributors: @ManyTheFish, @arithmeticmean, @curquiza, @dureuill, @irevoire, @shreeup and dependabot[bot].
v1.19.1 πͺΈ
π Performance improvements
Enhance hybrid search with filter performances
In previous versions of Meilisearch, mixing hybrid search with filters, as shown below, could multiply the search time by hundreds.
{
"q": "hello world",
"limit": 100,
"filter": "tag=science"
"hybrid": {
"semanticRatio": 0.5,
"embedder": "default"
}
}Meilisearch will now directly compute the semantic distance with the filtered candidates if only a few candidates come from the filter, instead of searching for the closest embeddings matching the filter in the vector database.