Meilisearch v0.27.0stable Released May 09, 2022
โš ๏ธ Breaking Change Impact Score: 7/10

Meilisearch v0.27.0 โ€” Release Notes & Engineering Impact

Source available โ€” automated, not human-reviewed

Component: meilisearch ยท Channel: stable. Automated analysis, not a compatibility certification. How this works.

Analysis updated: 2026-11-01.

Breaking-change evidence from the source

  • Breaking changes - Stabilize and improve cropping behavior: `cropLength` is now a number of words instead of a number of characters (#2214) @ManyTheFish
Read the original context โ†—
Source flags breaking changes โ€” review applicability
๐Ÿ“„ .MD
โšก Executive Summary (TL;DR)

Meilisearch v0.27.0. Source highlight: This version of Meilisearch introduces two much-requested features:

Who Does This Impact? (Role-Based Analysis)

๐Ÿ’ป Software Engineers & Devs

Check the source notes against the package and APIs you use before upgrading.

๐Ÿ“Š Product & Engineering Leads

Use the documented changes to assess relevance to your product; release frequency alone is not a quality measure.

โš™๏ธ DevOps & Security

Verify the target version, runtime requirements and rollback procedure in the official documentation.

โš ๏ธ Breaking Changes & Deprecations (1)

  • Breaking changes - Stabilize and improve cropping behavior: `cropLength` is now a number of words instead of a number of characters (#2214) @ManyTheFish

โœจ New Features & Capabilities (5)

  • `enabled`: Whether the typo tolerance feature is enabled. (Default: `true`)
  • 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 `1000` retrievable documents during search (`GET/POST /indexes/:uid/search`) (#2281) @Kerollmops
  • Add test to validate cli (#2245) @MarinPostma
  • Add tests with default CLI opts (#2254) @Kerollmops

โšก Performance & Enhancements (6)

  • `highlightPreTag`: set the tag to be inserted before the highlighted query terms. (Default: `
  • `highlightPostTag`: set the tag to be inserted after the highlighted query terms. (Default: `
  • `cropMarker`: set the crop marker to insert around the cropped field value. (Default: `...`)
  • `cropLength` is now a number of words instead of a number of characters
  • Stabilize and improve cropping behavior: `cropLength` is now a number of words instead of a number of characters (#2214) @ManyTheFish
  • Improve indexation time when inserting documents (#2203) @Kerollmops @MarinPostma

๐Ÿ”ง Bug Fixes & Patches (6)

  • When calling this endpoint, Meilisearch will not return more than 1000 documents. This limit is a security fix to avoid scraping the Meilisearch DB
  • 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 `--version` flag on the Rust binary (#2316) @sanders41
  • Fix error message caused by importing a dump when a DB is already present (#2356) @MarinPostma
  • Fix wrong `nbHits` value when using distinct attribute (meilisearch/milli#489) @MarinPostma
๐Ÿ“„ View Raw Release Notes (Original Developer Log)
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](https://github.com/meilisearch/meilisearch/discussions/2131). 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: - `cropLength` is 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](https://github.com/lindera-morphology/lindera). 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: `cropLength` is 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 `1000` retrievable 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/documents` route 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 a `typoTolerance` object with the following properties: ```bash docker run -it --rm \ -p 7700:7700 \ -v $(pwd)/meili_data:/meili_data \ getmeili/meilisearch:latest ``` - Following Docker best practices, we have moved the `meilisearch` binary. You may now call the binary using `meilisearch` (recommended), `/meilisearch`, or `/bin/meilisearch`: โœ… Correct ```bash docker run -it --rm -p 7700:7700 getmeili/meilisearch:latest meilisearch --no-analytics ``` โŒ Wrong ```bash 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 `sortableAttributes` and `filterableAttributes` error 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 `--version` flag on the Rust binary (#2316) @sanders41 - Fix error message caused by importing a dump when a DB is already present (#2356) @MarinPostma - Fix wrong `nbHits` value 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](https://github.com/meilisearch/meilisearch): @2shiori17, @CNLHC, @happysalada, @psvnlsaikumar, @sanders41 and @Thearas - [Milli](https://github.com/meilisearch/milli): @psvnlsaikumar - [Tokenizer](https://github.com/meilisearch/tokenizer): @djKooks, @miiton, @mosuka, and @Thearas