meilisearch @ v1.40.0
integrity
- size
- 20.2 MiB
- downloaded
- last checked
release notes
This release introduced support for the distinct attribute in federated search, enabling cross-index distinct attributes with facet distribution support. Additionally, significant performance improvements were delivered, including faster federated search (approximately 100ms faster), optimized JSON document generation for better handling of large documents and a much better memory usage for large workloads.
✨ Enhancement
-
Support
distinctin federated search by @dureuill in https://github.com/meilisearch/meilisearch/pull/6214The
distinctattribute can now be passed to thefederationobject in federated search to apply a global, cross-index and cross-remote distinct computation to the results.{ "federation": { "distinct": "genres", // ✨ NEW "facetsByIndex": { // recovering facet distribution is also supported with distinct "comics": [ "genres" ], "movies": [ "genres" ] }, "mergeFacets": {} // merging facet distributions is also supported with distinct }, "queries": [ { "indexUid": "comics", "q": "batman", "attributesToRetrieve": ["title", "genres"], "useNetwork": true // distinct is also supported with network queries }, { "indexUid": "movies", "q": "superman", "attributesToRetrieve": ["title", "genres"], "useNetwork": true } ] }{ "hits": [ { "title": "Batman", "genres": [ "Family", "Adventure", "Comedy", "Science Fiction", "Crime" ], "_federation": { "indexUid": "comics", "queriesPosition": 0, "weightedRankingScore": 1.0, "remote": "ms2" } }, { "title": "Batman", "genres": [ "Fantasy", "Action" ], "_federation": { "indexUid": "comics", "queriesPosition": 0, "weightedRankingScore": 1.0, "remote": "ms1" } }, { "title": "Batman & Bill", "genres": [ "Documentary" ], "_federation": { "indexUid": "comics", "queriesPosition": 0, "weightedRankingScore": 0.9848484848484848, "remote": "ms1" } }, { "title": "Superman: Red Son", "genres": [], "_federation": { "indexUid": "movies", "queriesPosition": 1, "weightedRankingScore": 0.9848484848484849, "remote": "ms0" } }, { "title": "Superman, Spider-Man or Batman", "genres": [ "Drama" ], "_federation": { "indexUid": "movies", "queriesPosition": 1, "weightedRankingScore": 0.9848484848484849, "remote": "ms0" } } ], "processingTimeMs": 15, "limit": 5, "offset": 0, "estimatedTotalHits": 11, "facetDistribution": { "genres": { "Action": 1, "Adventure": 1, "Comedy": 3, "Crime": 2, "Documentary": 1, "Drama": 1, "Family": 1, "Fantasy": 1, "Horror": 2, "Romance": 1, "Science Fiction": 1, "Thriller": 1, "Western": 1 } }, "facetStats": {}, "requestUid": "019d05c7-ea65-77a1-8274-22a8ba9e26db", "remoteErrors": {} }Note the following to apply the distinct attribute at the federation level:
- Applying
distinctat the query level at the same time as the federation level is disallowed and will return a HTTP 400 error. - The chosen distinct field will apply to all remotes and indexes, so it must be a filterable attribute for all participating remotes and indexes.
- While Meilisearch attempts to compute the most accurate facet distribution, in distributed contexts this cannot be guaranteed as the distinct algorithm is not applied on all of the remote documents.
- Applying
-
Improve performance of federated search by @dureuill in https://github.com/meilisearch/meilisearch/pull/6229
Improves performance of federated search: about 100ms faster for all requests. Improves reliability of the HTTP server: the server will no longer be blocked when too many federated search requests are being processed.
-
Optimize the generation of JSON documents by @Kerollmops in https://github.com/meilisearch/meilisearch/pull/6257
Addresses performance issues that users might encounter when requesting large documents. Additionally, performance is enhanced when users request only a small subset of fields from large documents.
-
Use the latest version of mimalloc to improve memory usage by @Kerollmops in https://github.com/meilisearch/meilisearch/pull/6201
Updates mimalloc from v2 to v3, improving memory sharing between threads and significantly reducing memory usage on large workloads. It also overrides the allocator to use mimalloc at linking time, allowing LMDB, Meilisearch, and other C libraries to share their allocations for better overall memory efficiency. @Kerollmops wrote a blog post about the story behind this improvement.
-
Add
POST /tasks/compactfor task queue compaction by @YoEight in https://github.com/meilisearch/meilisearch/pull/6193Compacts the task queue database and reclaim space so new tasks can keep being enqueued, without deleting existing tasks. This feature is behind the
taskQueueCompactionRouteexperimental feature flag.
[!WARNING]
Once task queue compaction completes, all write operations are blocked until the server is restarted.
🔐 Security
- Bump rustls-webpki from 0.103.8 to 0.103.10 in https://github.com/meilisearch/meilisearch/pull/6273
- Bump tar from 0.4.44 to 0.4.45 in https://github.com/meilisearch/meilisearch/pull/6271
- Bump actix-web-lab from 0.24.3 to 0.26.0 in https://github.com/meilisearch/meilisearch/pull/6218
- Bump quinn-proto from 0.11.13 to 0.11.14 in https://github.com/meilisearch/meilisearch/pull/6217
🪲 Bug fixes
- Check char boundaries when hiding secrets by @ManyTheFish in https://github.com/meilisearch/meilisearch/pull/6262
- Network fixes by @dureuill in https://github.com/meilisearch/meilisearch/pull/6255
- Override "default" source base url with the config one to support AWS bedrock OpenAI API by @dureuill in https://github.com/meilisearch/meilisearch/pull/5905
- Fix panic on virtiofs filesystem by @itsamine27 in https://github.com/meilisearch/meilisearch/pull/6261
🔩 Miscellaneous
- Add
X-Accel-Buffering: nofor/logs/streamroute by @YoEight in https://github.com/meilisearch/meilisearch/pull/6268 - Add link to documentation on
--experimental-allowed-ip-networksparameter by @paulden in https://github.com/meilisearch/meilisearch/pull/6263 - Update sysinfo version to
0.38.4by @GuillaumeGomez in https://github.com/meilisearch/meilisearch/pull/6211 - Add a no-agent AGENTS.md file to prevent excessive AI-generated PRs by @Kerollmops in https://github.com/meilisearch/meilisearch/pull/6256
New Contributors
- @GuillaumeGomez made their first contribution in https://github.com/meilisearch/meilisearch/pull/6211
- @itsamine27 made their first contribution in https://github.com/meilisearch/meilisearch/pull/6261
download
curl -fL -o v1.40.0.zip https://ratatoskr.space/pkg/meilisearch/v1.40.0.zip
printf '%s %s\n' 'c59f5b0fe28658bef556b029d43999c0eec6696a69da98028cbc3bd32f5a57a0' 'v1.40.0.zip' | sha256sum -c -
$url = "https://ratatoskr.space/pkg/meilisearch/v1.40.0.zip"
$out = "v1.40.0.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "c59f5b0fe28658bef556b029d43999c0eec6696a69da98028cbc3bd32f5a57a0") { throw "sha256 mismatch" }
curl -fL -o v1.40.0.tar.gz https://ratatoskr.space/pkg/meilisearch/v1.40.0.tar.gz
printf '%s %s\n' 'a4d3ae2cde835234b4838f2a964a4dc304c0ec278f64fe4caa88f138dcc12741' 'v1.40.0.tar.gz' | sha256sum -c -
$url = "https://ratatoskr.space/pkg/meilisearch/v1.40.0.tar.gz"
$out = "v1.40.0.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "a4d3ae2cde835234b4838f2a964a4dc304c0ec278f64fe4caa88f138dcc12741") { throw "sha256 mismatch" }
download via yggdrasil mesh
curl -fL -o v1.40.0.zip http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meilisearch/v1.40.0.zip
printf '%s %s\n' 'c59f5b0fe28658bef556b029d43999c0eec6696a69da98028cbc3bd32f5a57a0' 'v1.40.0.zip' | sha256sum -c -
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meilisearch/v1.40.0.zip"
$out = "v1.40.0.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "c59f5b0fe28658bef556b029d43999c0eec6696a69da98028cbc3bd32f5a57a0") { throw "sha256 mismatch" }
curl -fL -o v1.40.0.tar.gz http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meilisearch/v1.40.0.tar.gz
printf '%s %s\n' 'a4d3ae2cde835234b4838f2a964a4dc304c0ec278f64fe4caa88f138dcc12741' 'v1.40.0.tar.gz' | sha256sum -c -
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meilisearch/v1.40.0.tar.gz"
$out = "v1.40.0.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "a4d3ae2cde835234b4838f2a964a4dc304c0ec278f64fe4caa88f138dcc12741") { throw "sha256 mismatch" }
| artifact | format | size | hashes |
|---|---|---|---|
| v1.40.0.zip | zip | 20.2 MiB |
blake3-24 f754234cf2346d28a86eecb313a0c9c34f0cb7937e6548f9
sha256 c59f5b0fe28658bef556b029d43999c0eec6696a69da98028cbc3bd32f5a57a0
sha1 d079e78a963f4764aadd92a36d0e90103cc2b1e5
|
| v1.40.0.tar.gz | tar.gz | 19.3 MiB |
blake3-24 ab0185f90280c1929a66d6bec0a96c8d04854af7cb9f87d5
sha256 a4d3ae2cde835234b4838f2a964a4dc304c0ec278f64fe4caa88f138dcc12741
sha1 7b53e1ca84328d4e0a7c9d61f9aa0e40c9a952fd
|
install
http_archive(
name = "meilisearch",
urls = ["https://ratatoskr.space/pkg/meilisearch/v1.40.0.tar.gz"],
integrity = "sha256-pNOuLN6DUjS0g48qlkpNwwTA7CePZP5MqojxONzBJ0E=",
strip_prefix = "meilisearch-v1.40.0",
)
.url = "https://ratatoskr.space/pkg/meilisearch/v1.40.0.tar.gz",
install via yggdrasil mesh
http_archive(
name = "meilisearch",
urls = ["http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meilisearch/v1.40.0.tar.gz"],
integrity = "sha256-pNOuLN6DUjS0g48qlkpNwwTA7CePZP5MqojxONzBJ0E=",
strip_prefix = "meilisearch-v1.40.0",
)
.url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meilisearch/v1.40.0.tar.gz",