meilisearch @ v1.0.0
integrity
- size
- 13.1 MiB
- downloaded
- last checked
release notes
🎉 🎉 We are proud to announce the first major release of Meilisearch! 🎉 🎉
This new release focuses on stabilizing the CLI instead of only introducing new features. We took this opportunity to introduce final breaking changes to the CLI and make the error handler more intuitive. There will be no breaking changes in future versions until the release of v2.0.0. Please refer to our versioning policy for a definition of what we consider to be a breaking change in Meilisearch.
Despite our focus on stabilizing Meilisearch, we also took the time to improve support for Chinese and Korean!
🧰 Most integrations (SDKs, clients, libraries) will be compatible with this version within four hours of the release. Sometimes this can take up to 48 hours, depending on the issues we encounter during the release.
Here is the exhaustive list of integrations not immediately compatible with v1.0.0:
- meilisearch-swift: though you can still use this library with v1.0.0, some new features present in Meilisearch v0.30.0 and later are not yet available. Let us know if you really need it—and contributions are always welcome in the related repository!
- meilisearch-java: our team is still working on refactoring the code; this is reaching the end, but the SDK cannot be used with v0.29.0 and later yet. Follow the repository to know when it will be compatible.
New features and improvements 🔥
Improve language support
- Add support for Korean 🇰🇷
- Improve support for Chinese:
- Normalize Chinese characters into Pinyin
- Disable the HMM (Hidden Markov Model algorithm) feature in Chinese segmentation
- Unify Chinese characters variants (kvariants, zvariants, semantic variants, etc)
- Enhance Hebrew, Thai, Arabic, and Latin languages support by improving diacritics and non-spacing marks normalization
Done by @ManyTheFish, @dureuill, @choznerol, @crudiedo, @daniel-shuy, @harshalkhachane, @mosuka, @qbx2, @Roms1383, @Sokom141, and @yenwel in #3269 and meilisearch/milli#736 and all the Charabia's PRs listed here.
Indexing and search speed improvements
- Significantly improve the memory usage of search requests containing multiple long words (#3269 and meilisearch/milli#708) @loiclec
- Significantly improve the performance of the
exactnessranking rule for search requests containing many words (#3269 and meilisearch/milli#709) @loiclec - Translate multi-word synonyms into phrases when interpreting a search query. This change improves the relevancy of the results and stabilises the latency of search queries containing many multi-word synonyms, removing a source of denial-of-service attacks. (#3269 and meilisearch/milli#732) @loiclec
- Improve the performance of the
proximityranking rule for search requests ending with short words (#3269 and meilisearch/milli#733) @loiclec - Limit the reindexing caused by updating settings when not needed (meilisearch/milli#706 and #3269) @GregoryConrad
- Reduce incremental indexing time for the proximity ranking rule (#3445 and meilisearch/milli#776) @loiclec
- Improve soft-deletion computation (meilisearch/milli#747) @dureuill
Other improvements
- Using a single dump, you can now migrate from any old version of Meilisearch (supporting the dump feature) to the latest version. We hope to facilitate your migration to v1.0.0 to make it as smooth as possible (#3170) @dureuill
- Improve
download-latest.shscript: integrate apple-silicon binary (#3169) @curquiza - Clarify error message when the DB and engine versions are incompatible (#3279) @dureuill
Breaking changes ⚠️
Since we are releasing v1.0.0, this is the last time we introduce breaking changes until v2.0.0.
New CLI behavior
- As a security measure, Meilisearch will now reject master keys that are less than 16 bytes in production environment (#3274 and #3295) @dureuill
- Remove
--max-index-sizeand--max-task-dbconfiguration options (#3278) @dureuill These options were not serving their intended purpose of limiting the disk space taken by Meilisearch for the reasons laid out here. Please reach out if the new limits (described in the previous link) impede your usage. - Remove
--disable-auto-batchingCLI option and the associated environment variableMEILI_DISABLE_AUTO_BATCHING(#3296) @loiclec This option was initially introduced as a workaround in case of a bug and is no longer useful since the feature has matured. - Rename dump command from
--dumps-dirto--dump-dir(#3175) @dureuill - Remove
--snapshot-interval-sec.--schedule-snapshotnow accepts an optional integer value specifying the interval in seconds (#3281) @dureuill - The
--log-leveloption andMEILI_LOG_LEVELenvironment variable now only accept the following arguments:ERROR,WARN,INFO,DEBUG,TRACEandOFF(#3293) @loiclec - Remove hidden but usable CLI arguments
--nb-max-chunksand--log-every-n(#3305) @Kerollmops
Revamp primary key inference
We have improved the primary key inference process when receiving documents for the first time.
If an index's primary key has not been specified, Meilisearch will attempt to infer the primary key by searching for any attributes ending with id, such as puid or _id.
If only one such attribute is detected, it will be designated as the index's primary key.
If multiple attributes ending with id are detected, Meilisearch will ask you to specify the primary key instead of choosing the first found one.
If no primary key candidates are detected, Meilisearch will throw an error as before.
Done in meilisearch/milli#752 and #3269 by @dureuill
Change the name of the binary when using apt
The command used to install the Meilisearch binary withapt is now apt install meilisearch and not apt install meilisearch-http.
To download the Meilisearch binary released before v1.0, you still need to use apt install meilisearch-http.
Error handler changes
All detailed task responses contain the error field. When a task fails, it is always accompanied by a JSON-formatted error response that contains an error code and type. Many of these codes and types were unclear and have been changed to improve the user experience.
This is a breaking change if you use any of the following codes or types in your code base:
- When calling
POST /indexes/swap-indexes, the following errorcodes have been updated: - When calling
GET /indexesandGET /indexes/:uid, the following errorcodes have been updated: - When calling
POST /indexesandPUT /indexes/:uid, the following errorcodes have been updated: - When calling
GET /index/:uid/documentsandGET /indexes/:uid/documents/:uid, the following errorcodes have been updated:. - When calling
POST /index/:uid/documentsandPUT /indexes/:uid/documents - When calling
GET /index/:uid/searchandPOST /indexes/:uid/search, the following errorcodes have been updated: - When calling any
/settingsroutes and their sub-routes, the following errorcodes have been updated: - When calling any
/tasksroutes, the following errorcodes have been updated: - When calling
GET /keysandGET /keys/:uid, the following errorcodes have been updated: - When calling
POST /keys, the following errorcodes have been updated: - When calling
PATCH /keys, the following errorcodes have been updated: - When Meilisearch does not have enough space
- the
no_space_left_on_devicecode replacesinternal systemtype replacesinternal
- the
- When Meilisearch throws an I/O error
- the
io_errorcode replacesinternal systemtype replacesinternal
- the
- When your machines exceeds the maximum number allowed for open files, Meilisearch returns
- the
too_many_open_filescode instead ofinternal systemtype instead ofinternal
- the
- All Meilisearch errors of type
systemreturn the HTTP error code500(#3321) @irevoire - The following errors are now returned synchronously:
invalid_index_uidinvalid_settings_ranking_rulesinvalid_settings_typo_toleranceifoneTypoandtwoTyposare filled (forminWordSizeForTypos) but are invalid
Done by @irevoire and @loiclec in #3316, #3263, #3329, #3334, #3412 and #3339
Fixes 🐞
- Commit SHA and date are now present in the Meilisearch logs when launching Meilisearch from a Docker image (#3212) @brunoocasali
- Fix
MDB_PAGE_FULLinternal error that would sometimes occur when inserting documents on macOS (#3210) @Kerollmops - Re-introduce the
no_space_left_on_deviceerror (#3263) @irevoire - Index creation and update dates are now kept when using a dump (#3245) @amab8901
- Fix the usage of
*for thetasksroutes. More information on this issue (#3339) @loiclec - Fix
/tasks/cancelbehavior when sending an invalidcanceledByparameter (#3375) @Kerollmops - Fix dumps import for Windows, see this issue for more information.
- Return an error when a
_geofield contains one extra unspecified field (#3415 meilisearch/milli#772) @irevoire - Fix error message when
latandlngare unparseable (#3415 meilisearch/milli#763) @ahlner - Fix the
databaseSizevalue of the/statsroute (#3418) @irevoire
Misc
The following changes do not impact user experience.
- GitHub CIs
- Replace deprecated set-output in GitHub actions (#3015) @funilrys
- Use ubuntu-latest when not impacting (#3183) @curquiza
- Add CI to push a
latestgit tag for every stable Meilisearch release (#3172 and #3207) @curquiza - Add
workflow_dispatchto flaky.yml (#3041) @curquiza - Add a dispatch to the publish binaries workflow (#3100) @curquiza
- Remove macos-latest and windows-latest usages (#3264) @curquiza
- Add a nightly CI: create a
nightlyDocker tag every day based on the latest commit onmain(#3229 and #3247) @curquiza - Use ubuntu-18.04 container instead of GitHub hosted actions (#3261) @curquiza
- Test suite
- Re-enable dump tests (#3119) @irevoire
- Re-enable dump test on dates (#3188) @irevoire
- Stop snapshotting the version of Meilisearch in the dump test (#3208) @irevoire
- Update insta snap tests for index dates of dump v5 (#3302) @loiclec
- Add a test on finite pagination placeholder search when distinct is enabled (#3251) @ManyTheFish
- Dependencies
- Fix update-cargo-toml-version.yml (#3224) @mohitsaxenaknoldus
- Update CI dependencies (#3179, #3181 and #3180)
- Update some
cargo_tomldependency (#3128) @colbsmcdolbs - Update mini-dashboard to v0.2.5 (#3186, and #3322) @mdubus
- Documentation
- Update README to reference Meilisearch Cloud (#3221) @davelarkan
- Replace Slack link with Discord in README.md (#3234 and #3276) @tpayet @shivaylamba
- Internal changes
- Implement Uuid codec for heed (#3001) @elbertronnie
- Improve how we receive the documents payload (#3164 and #3266) @jiangbo212
- Improve clarity of the code that receives payloads (#3236) @Kerollmops
- Extract the dates out of the dumpv4 (#3012 and #3190) @funilrys @irevoire
- Rename meilisearch-http (#3112) @colbsmcdolbs
❤️ Thanks again to our external contributors:
- Meilisearch: @amab8901, @colbsmcdolbs, @elbertronnie, @funilrys, @jiangbo212, @mohitsaxenaknoldus, and @shivaylamba.
- Milli: @amab8901, @GregoryConrad and @pnhatminh.
- Charabia: @choznerol, @crudiedo, @daniel-shuy, @harshalkhachane, @mosuka, @qbx2, @Roms1383, @Sokom141, and @yenwel.
download
curl -fL -o v1.0.0.zip https://ratatoskr.space/pkg/meilisearch/v1.0.0.zip
printf '%s %s\n' '0bed84afdc491ef3ad3f1b35d64fa8e2d8757e6923613290a5ffe326580770d7' 'v1.0.0.zip' | sha256sum -c -
$url = "https://ratatoskr.space/pkg/meilisearch/v1.0.0.zip"
$out = "v1.0.0.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "0bed84afdc491ef3ad3f1b35d64fa8e2d8757e6923613290a5ffe326580770d7") { throw "sha256 mismatch" }
curl -fL -o v1.0.0.tar.gz https://ratatoskr.space/pkg/meilisearch/v1.0.0.tar.gz
printf '%s %s\n' '5f150fb5234d3e429810f2bff8fc305ad77b53950047567a1176d323a18b6baf' 'v1.0.0.tar.gz' | sha256sum -c -
$url = "https://ratatoskr.space/pkg/meilisearch/v1.0.0.tar.gz"
$out = "v1.0.0.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "5f150fb5234d3e429810f2bff8fc305ad77b53950047567a1176d323a18b6baf") { throw "sha256 mismatch" }
download via yggdrasil mesh
curl -fL -o v1.0.0.zip http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meilisearch/v1.0.0.zip
printf '%s %s\n' '0bed84afdc491ef3ad3f1b35d64fa8e2d8757e6923613290a5ffe326580770d7' 'v1.0.0.zip' | sha256sum -c -
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meilisearch/v1.0.0.zip"
$out = "v1.0.0.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "0bed84afdc491ef3ad3f1b35d64fa8e2d8757e6923613290a5ffe326580770d7") { throw "sha256 mismatch" }
curl -fL -o v1.0.0.tar.gz http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meilisearch/v1.0.0.tar.gz
printf '%s %s\n' '5f150fb5234d3e429810f2bff8fc305ad77b53950047567a1176d323a18b6baf' 'v1.0.0.tar.gz' | sha256sum -c -
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meilisearch/v1.0.0.tar.gz"
$out = "v1.0.0.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "5f150fb5234d3e429810f2bff8fc305ad77b53950047567a1176d323a18b6baf") { throw "sha256 mismatch" }
| artifact | format | size | hashes |
|---|---|---|---|
| v1.0.0.zip | zip | 13.1 MiB |
blake3-24 282667c0c9a34fa7b95a6096c0cafe23acf446387ac99bc8
sha256 0bed84afdc491ef3ad3f1b35d64fa8e2d8757e6923613290a5ffe326580770d7
sha1 67b747bfbf0390a7bc813b9ecb1fb226089da306
|
| v1.0.0.tar.gz | tar.gz | 12.9 MiB |
blake3-24 aa173ae7cab89c8739e01dbe0fe06f259bf8914985f50614
sha256 5f150fb5234d3e429810f2bff8fc305ad77b53950047567a1176d323a18b6baf
sha1 5fb2bc617fe3bae41d74718494ba1a4cc46d55a6
|
install
http_archive(
name = "meilisearch",
urls = ["https://ratatoskr.space/pkg/meilisearch/v1.0.0.tar.gz"],
integrity = "sha256-XxUPtSNNPkKYEPK/+PwwWtd7U5UAR1Z6EXbTI6GLa68=",
strip_prefix = "meilisearch-v1.0.0",
)
.url = "https://ratatoskr.space/pkg/meilisearch/v1.0.0.tar.gz",
install via yggdrasil mesh
http_archive(
name = "meilisearch",
urls = ["http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meilisearch/v1.0.0.tar.gz"],
integrity = "sha256-XxUPtSNNPkKYEPK/+PwwWtd7U5UAR1Z6EXbTI6GLa68=",
strip_prefix = "meilisearch-v1.0.0",
)
.url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meilisearch/v1.0.0.tar.gz",