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.
- Introduce a task to compact an index by @Kerollmops in https://github.com/meilisearch/meilisearch/pull/5929
- Parallelize bulk facets & word prefix fid/position docids by @Kerollmops in https://github.com/meilisearch/meilisearch/pull/5307
- Change Java version in SDK CI by @curquiza in https://github.com/meilisearch/meilisearch/pull/5910
- Minor improvement in OpenAPI CI by @curquiza in https://github.com/meilisearch/meilisearch/pull/5834
- Add request uid to search routes by @ManyTheFish in https://github.com/meilisearch/meilisearch/pull/5863
- Fix ranking score bug when sort is present by @ManyTheFish in https://github.com/meilisearch/meilisearch/pull/5933
- Synonym performance fix by @ManyTheFish in https://github.com/meilisearch/meilisearch/pull/5930
- Update README.md to fix newsletter link by @EazyAl in https://github.com/meilisearch/meilisearch/pull/5911
- Try to fix GH license detection again by @dureuill in https://github.com/meilisearch/meilisearch/pull/5938
- Remove release-drafter and encourage usage of GitHub-generated notes by @curquiza in https://github.com/meilisearch/meilisearch/pull/5935
- Show Dependabot dependency upgrade in the changelog by @curquiza in https://github.com/meilisearch/meilisearch/pull/5900
- Bump actions/setup-go from 5 to 6 by @dependabot[bot] in https://github.com/meilisearch/meilisearch/pull/5912
- Bump actions/setup-dotnet from 4 to 5 by @dependabot[bot] in https://github.com/meilisearch/meilisearch/pull/5914
- Bump actions/setup-node from 4 to 5 by @dependabot[bot] in https://github.com/meilisearch/meilisearch/pull/5915
- Bump sigstore/cosign-installer from 3.9.2 to 3.10.0 by @dependabot[bot] in https://github.com/meilisearch/meilisearch/pull/5916
- Bump actions/setup-python from 5 to 6 by @dependabot[bot] in https://github.com/meilisearch/meilisearch/pull/5913
- @EazyAl made their first contribution in https://github.com/meilisearch/meilisearch/pull/5911
Full Changelog: https://github.com/meilisearch/meilisearch/compare/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.
- 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_SECONDS
to a positive integer value. Please note that no CLI flag or configuration entry is available. By @dureuill in https://github.com/meilisearch/meilisearch/pull/5932
v1.22.2 🐦🔥
- Remote federated search would declare remotes as "timeout'd" after 5s. This timeout was raised to 30s to accomodate some search configurations. By @dureuill in https://github.com/meilisearch/meilisearch/pull/5919
v1.22.0 🐦🔥
- Introduce a new geo backend to store geojson and filter on polygon
- Make the
_geojson
field filterable - Then send your documents with a
_geojson
field filled with a valid geojson - Filter your documents with the new
_geoPolygon
filter, or the old_geoBoudingBox
and_geoPoints
filter
- Make the
- Document template: Correctly render when indexing first item in array by @dureuill in https://github.com/meilisearch/meilisearch/pull/5896
- arroy to hannoy conversion fails with binary quantized distances by @nnethercott https://github.com/meilisearch/meilisearch/pull/5891
❤️ Huge thanks to our contributors: @nnethercott, @Kerollmops, @ManyTheFish, @dureuill and @irevoire.
Full Changelog: https://github.com/meilisearch/meilisearch/compare/v1.21.0...v1.22.0
v1.21.0
- Introduce a new vector store backend for better performance, especially if using the binary quantization
- Enable the new
vectorStoreSetting
experimental feature - Then change the
vectorSetting
index 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
- Observing the progress trace during indexing no longer removes parts of the trace (#5884) @irevoire
- Fix dumpless upgrade
decoding error
when upgrading with arest
embedder (#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 🦟
- Display the progressTrace in in-progress batches (#5858) @shreeup
- Send the version when returning prometheus metrics (#5876) @irevoire
- Bump tracing-subscriber from 0.3.19 to 0.3.20 (#5869) @dependabot[bot]
- Fix scheduled CI failure (#5856) @arithmeticmean
❤️ Huge thanks to our contributors: @ManyTheFish, @arithmeticmean, @curquiza, @dureuill, @irevoire, @shreeup and dependabot[bot].
v1.19.1 🪸
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.
v1.18.0 🕷️
- Return
queryVector
in the search response when usingretrieveVectors
(#5778) @Mubelotix - Allow retrieving documents with vectors from specific embedders (#5741) @Mubelotix
- Support renaming indexes using the API (#5829) @irevoire
❤️ Huge thanks to our contributors: @Kerollmops, @Mubelotix, @irevoire and @qdequele.