meilisearch @ v0.27.0
integrity
- size
- 7.1 MiB
- downloaded
- last checked
release notes
This version of Meilisearch introduces two much-requested features:
- Full support for nested document fields
- Typo tolerance configuration
v0.27 also addresses some of our previous indexation performance issues.
Please consider using this version and share your feedback on this GitHub discussion.
When settings your filterableAttributes: "filterableAttributes": ["person.firstname"]
Then, when filtering during the search: "filter": "person.firstname = Gui"
New features
Nested field support
Meilisearch now fully supports nested document fields. This allows users to use a nested field location in any API parameter accepting document attributes using dot notation.
Example
- When settings your
fileterableAttributes: ``"filterableAttributes": ["person.firstname"]` - Then, when filtering during the search:
"filter": "person.firstname = Gui"
Done by @irevoire (#2211)
Customize typo tolerance
You can customize typo tolerance with the new typoTolerance setting endpoints:
- settings (
/indexes/:index_uid/settings) - typo-tolerance settings (
/indexes/:index_uid/settings/typo-tolerance)
The new API endpoints accept a typoTolerance object with the following properties:
enabled: Whether the typo tolerance feature is enabled. (Default:true)disableOnAttributes: Disable typo tolerance on specified document attributes. (Default:[])disableOnWords: Disable typo tolerance for a set of query terms given during search. (Default:[])minWordSizeForTypos:oneTypo: Customize the minimum size for a word to tolerate 1 typo. (Default:5)twoTypos: Customize the minimum size for a word to tolerate 2 typos.(Default:9)
Improve cropping/highlighting
v0.27 allows you to customize the tags used when highlighting query terms and the crop markers when cropping long field values:
highlightPreTag: set the tag to be inserted before the highlighted query terms. (Default:<em>)highlightPostTag: set the tag to be inserted after the highlighted query terms. (Default:</em>)cropMarker: set the crop marker to insert around the cropped field value. (Default:...)
Other changes:
cropLengthis now a number of words instead of a number of characters
Done by @ManyTheFish (#2214)
Add Japanese support
New language support: Japanese, via the Lindera tokenizer.
Thanks to the community for this integration.
Done by @miiton, @djKooks, @mosuka and @ManyTheFish (#2185)
New instance options
New instance options for limiting RAM and CPU usage during indexation:
--max-indexing-memory(MEILI_MAX_INDEXING_MEMORY): Sets the maximum RAM size during indexation--max-indexing-threads(MEILI_MAX_INDEXING_THREADS): Sets the maximum number of threads available for use during indexation
Done by the amazing @2shiori17 in #2267
Breaking changes
- Stabilize and improve cropping behavior:
cropLengthis now a number of words instead of a number of characters (#2214) @ManyTheFish - Typo tolerance behavior changes: a typo on the first letter will count as 2 typos. This reduces the possibilities during the search regarding the typo tolerance feature and thus make Meilisearch faster as search time in this case. Indeed, users rarely get the first letter wrong. (milli#439) @MarinPostma
- Add a hard limit of
1000retrievable documents during search (GET/POST /indexes/:uid/search) (#2281) @Kerollmops- When calling this endpoint, Meilisearch will not return more than 1000 documents. This limit is a security fix to avoid scraping the Meilisearch DB
- If you still want to browse your own DB and retrieve all your documents, the
GET /indexes/:uid/documentsroute is still usable since this limit is not applied to it
- Docker now launches from a different working directory. This means you must mount your volume in
/meili_data. The new API endpoints for typo tolerance accept atypoToleranceobject with the following properties:
docker run -it --rm \
-p 7700:7700 \
-v $(pwd)/meili_data:/meili_data \
getmeili/meilisearch:latest
- Following Docker best practices, we have moved the
meilisearchbinary. You may now call the binary usingmeilisearch(recommended),/meilisearch, or/bin/meilisearch:
✅ Correct
docker run -it --rm -p 7700:7700 getmeili/meilisearch:latest meilisearch --no-analytics
❌ Wrong
docker run -it --rm -p 7700:7700 getmeili/meilisearch:latest ./meilisearch --no-analytics
Other improvements
- Improve indexation time when inserting documents (#2203) @Kerollmops @MarinPostma
- Improve
sortableAttributesandfilterableAttributeserror messages during search (#2140) @brunoocasali - Upgrade dependencies of the Meilisearch, Milli and Tokenizer repositories (#2237) @Kerollmops
Fixes
- Fix kernel panic when sending a document update without content type header (#2277) @MarinPostma
- Avoid embedding user input into error response (#2207) @CNLHC
- Re-introduce the
--versionflag on the Rust binary (#2316) @sanders41 - Fix error message caused by importing a dump when a DB is already present (#2356) @MarinPostma
- Fix wrong
nbHitsvalue when using distinct attribute (meilisearch/milli#489) @MarinPostma
Misc
- Change of the document order for the placeholder search (https://github.com/meilisearch/meilisearch/pull/2298) @irevoire
- Simplify Docker usage (#2271) @Thearas
- Refactor authentication key extraction (#2253) @MarinPostma
- Cargo: use resolver 2 (#2238) @happysalada
- Use milli's heed dependency (#2228) @psvnlsaikumar
- Add test to validate cli (#2245) @MarinPostma
- Add tests with default CLI opts (#2254) @Kerollmops
- Minor change on our CIs (#2233) @curquiza
- Upgrade the configuration of issue management (#2263) @curquiza
- Update mini-dashboard version (#2334) @mdubus
❤️ Thanks again to our external contributors:
- Meilisearch: @2shiori17, @CNLHC, @happysalada, @psvnlsaikumar, @sanders41 and @Thearas
- Milli: @psvnlsaikumar
- Tokenizer: @djKooks, @miiton, @mosuka, and @Thearas
download
curl -fL -o v0.27.0.zip https://ratatoskr.space/pkg/meilisearch/v0.27.0.zip
printf '%s %s\n' '4ed5721f22b2a24b62bd803869ae7809d70b766a1e4592f42a7bae4ac2c458f6' 'v0.27.0.zip' | sha256sum -c -
$url = "https://ratatoskr.space/pkg/meilisearch/v0.27.0.zip"
$out = "v0.27.0.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "4ed5721f22b2a24b62bd803869ae7809d70b766a1e4592f42a7bae4ac2c458f6") { throw "sha256 mismatch" }
curl -fL -o v0.27.0.tar.gz https://ratatoskr.space/pkg/meilisearch/v0.27.0.tar.gz
printf '%s %s\n' '5b73ff12f1cbdc62480b88c3d25ab24f0d30f731e1fca32af04a65401eec44cf' 'v0.27.0.tar.gz' | sha256sum -c -
$url = "https://ratatoskr.space/pkg/meilisearch/v0.27.0.tar.gz"
$out = "v0.27.0.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "5b73ff12f1cbdc62480b88c3d25ab24f0d30f731e1fca32af04a65401eec44cf") { throw "sha256 mismatch" }
download via yggdrasil mesh
curl -fL -o v0.27.0.zip http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meilisearch/v0.27.0.zip
printf '%s %s\n' '4ed5721f22b2a24b62bd803869ae7809d70b766a1e4592f42a7bae4ac2c458f6' 'v0.27.0.zip' | sha256sum -c -
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meilisearch/v0.27.0.zip"
$out = "v0.27.0.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "4ed5721f22b2a24b62bd803869ae7809d70b766a1e4592f42a7bae4ac2c458f6") { throw "sha256 mismatch" }
curl -fL -o v0.27.0.tar.gz http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meilisearch/v0.27.0.tar.gz
printf '%s %s\n' '5b73ff12f1cbdc62480b88c3d25ab24f0d30f731e1fca32af04a65401eec44cf' 'v0.27.0.tar.gz' | sha256sum -c -
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meilisearch/v0.27.0.tar.gz"
$out = "v0.27.0.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "5b73ff12f1cbdc62480b88c3d25ab24f0d30f731e1fca32af04a65401eec44cf") { throw "sha256 mismatch" }
| artifact | format | size | hashes |
|---|---|---|---|
| v0.27.0.zip | zip | 7.1 MiB |
blake3-24 ba23a131812f565e74470872f29582c0820bd686f73c431b
sha256 4ed5721f22b2a24b62bd803869ae7809d70b766a1e4592f42a7bae4ac2c458f6
sha1 8b1cd003c3a2654ca38648401624a830e9a5cf4a
|
| v0.27.0.tar.gz | tar.gz | 7.0 MiB |
blake3-24 4672d2fb2a282076062be40d2dcd16b65a4b42355a034e91
sha256 5b73ff12f1cbdc62480b88c3d25ab24f0d30f731e1fca32af04a65401eec44cf
sha1 de975f852f2503dea675e91bb5d243a11adb4e47
|
install
http_archive(
name = "meilisearch",
urls = ["https://ratatoskr.space/pkg/meilisearch/v0.27.0.tar.gz"],
integrity = "sha256-W3P/EvHL3GJIC4jD0lqyTw0w9zHh/KMq8EplQB7sRM8=",
strip_prefix = "meilisearch-v0.27.0",
)
.url = "https://ratatoskr.space/pkg/meilisearch/v0.27.0.tar.gz",
install via yggdrasil mesh
http_archive(
name = "meilisearch",
urls = ["http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meilisearch/v0.27.0.tar.gz"],
integrity = "sha256-W3P/EvHL3GJIC4jD0lqyTw0w9zHh/KMq8EplQB7sRM8=",
strip_prefix = "meilisearch-v0.27.0",
)
.url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meilisearch/v0.27.0.tar.gz",