Meilisearch v1.1.0stable Released Apr 03, 2023
Impact Score: 5/10

Meilisearch: v1.1.0 🐑

Source available β€” automated, not human-reviewed

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

Analysis updated: 2026-11-01.

Compatibility not verified β€” check source notes
πŸ“„ .MD
⚑ Executive Summary (TL;DR)

Meilisearch v1.1.0. Source highlight: Meilisearch v1.1.0 introduces the much-requested multi-index search! You can now use one single HTTP request to perform different searches in multiple indexes.

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.

✨ New Features & Capabilities (6)

  • Improve error messages: introduction of "did you mean ...?" suggestions when making typos in a Meilisearch parameter (#3492) @irevoire
  • Add tests with rust nightly in CI (#3495) @ztkmkoo
  • Add `--all` to test CI (#3403) @curquiza
  • Add prototype guide to CONTRIBUTING.md (#3433) @curquiza
  • Add image hyperlink to the README.md (#3420) @gregsadetsky
  • Add support for running milli on iOS and macOS when using App Sandbox by activating Cargo feature for LMDB's POSIX semaphores (#3407) @GregoryConrad

⚑ Performance & Enhancements (6)

  • Enhance Greek support by normalizing diacritics and final sigma
  • Enhance Arabic support by ignoring Tatweel
  • Enhance language detection: detection now happens during indexing, reducing erroneous language recognition during search
  • Allow wildcards (`*`) at the end of index names when creating API keys or tenant tokens (#3174) @Kerollmops & @akhildevelops
  • Customize the CSV delimiter (default: `,`) with the `csvDelimiter` parameter in the document addition or update, and document addition or replace endpoints (#3505, #3534) @MixusMinimax and @irevoire
  • Automatically batch addition and deletion tasks together to speed up indexing (#3470) @irevoire

πŸ”§ Bug Fixes & Patches (6)

  • Improve facet string normalization: fixes issues when using `sortBy` with accented characters (#3372) @ManyTheFish
  • Fix web interface issues: bump version of search preview to v0.2.7 (#3623) @bidoubiwa
  • Unify "Bad latitude" and "Bad longitude" errors (#3479) @cymruu
  • Prevent "Cannot allocate memory" errors when creating a lot of indexes (#3331) @dureuill
  • Fix Japanese support (see the related issue) thanks to the new language detection (#3347) @ManyTheFish
  • Remove `MDB_BAD_VALSIZE` error by avoiding fetching an LMDB value with an empty string (#3577) @Kerollmops
πŸ“„ View Raw Release Notes (Original Developer Log)
Meilisearch v1.1.0 introduces the much-requested multi-index search! You can now use one single HTTP request to perform different searches in multiple indexes. Additional new features include: the `geoBoundingBox` geosearch filter, the addition of a `facetStats` object to queries using the `facets` search parameter, and the customization of CSV separators. 🧰 All official Meilisearch integrations (including SDKs, clients, and other tools) are compatible with this Meilisearch release. Integration deployment happens between 4 to 48 hours after a new version becomes available. Some SDKs might not include all new featuresβ€”consult the project repository for detailed information. Is a feature you need missing from your chosen SDK? Create an issue letting us know you need it, or, for open-source karma points, open a PR implementing it (we'll love you for that <3). # New features and improvements πŸ”₯ ## Multi-index search: allow multiple searches in a single request Perform searches in multiple indexes in a single HTTP request using the new `/multi-search` endpoint: ```bash curl \ -X POST 'http://localhost:7700/multi-search' \ -H 'Content-Type: application/json' \ --data-binary '{ "queries": [ { "indexUid": "products", "q": "Nike", "limit": 1 }, { "indexUid": "brands", "q": "Nike", "limit": 1 } ] }' ``` When you use the multi-index search endpoint, Meilisearch returns an array of results for each queried index: ```json { "results": [ { "indexUid": "products", "hits": […], "query": "Nike", "processingTimeMs": 1, "limit": 1, "offset": 0, "estimatedTotalHits": 17 }, { "indexUid": "brands", "hits": […], "query": "Nike", "processingTimeMs": 0, "limit": 1, "offset": 0, "estimatedTotalHits": 7 } ] } ``` Done by @dureuill in #3417 ## Introduce `facetStats` Queries containing the `facets` parameter now include a `facetStats` object by default: ```bash curl \ -X POST 'http://localhost:7700/indexes/movies/search' \ -H 'Content-Type: application/json' \ --data-binary '{ "facets": ["price"] }' ``` `facetStats` only lists facets containing numerical values. Facets with other types of values are not included in the `facetStats` object. This object contains the minimum (`min`) and the maximum (`max`) of each numerical facet: ```json { "hits": […], "facetDistribution": { "price": {…} }, "facetStats": { "price": { "min": 2, "max": 60 } } } ``` Done by @dureuill in #3423. ## New geosearch filter: `_geoBoundingBox` Use the `filter` search parameter and the `_geoBoundingBox` filter expression to obtain results contained within a specific geographic area. ```bash curl \ -X POST 'http://localhost:7700/indexes/restaurants/search' \ -H 'Content-type:application/json' \ --data-binary '{ "filter": "_geoBoundingBox([45.472735, 9.184019],[45.473711, 9.185613] )" }' ``` `_geoBoundingBox([lat, lng], [lat, lng])` accepts two parameters: one array specifying the top right corner, and a second array specifying the bottom left corner. Done by @gmourier and @irevoire in #3405 and #3529. ## Removing limits on index size and count Meilisearch no longer limits the size nor the amount of indexes a single instance may contain. You can now create an unlimited number of indexes, whose maximum size will be only dictated by the memory address space devoted to a single process by the OS. Under Linux, the limit is at about 80TiB. Done by @dureuill in #3319, #3331 and #3544. ## Experimental feature: monitor Meilisearch usage with Prometheus This release introduces an experimental feature allowing you to monitor metrics with [Prometheus](https://prometheus.io/). When launching Meilisearch, use the following flag: ```bash meilisearch --experimental-enable-metrics ``` The `/metrics` route will be available and compatible with Prometheus. πŸ—£οΈ Since this feature is experimental, we need your help to iterate on it! You are more than welcome to share your thoughts and your feedback on [this discussion](https://github.com/meilisearch/meilisearch/discussions/3518). ⚠️ The experimental feature API can break between Meilisearch versions. Be careful if using it in production. Done by @irevoire, @dureuill, and @james-2001 in #3496, #3524, #3538 and #3543. ## Improve language support * Enhance Greek support by normalizing diacritics and final sigma * Enhance Arabic support by ignoring Tatweel * Enhance language detection: detection now happens during indexing, reducing erroneous language recognition during search πŸ‡―πŸ‡΅ For people using Japanese datasets, language detection might still fail on small datasets. For instance, a song dataset that only contains titles in Japanese will still be detected as Chinese.<br> If you encounter any issue, we recommend you use [this prototype](https://github.com/meilisearch/meilisearch/pull/3588) which is an alternative version of Meilisearch v1.1 for Japanese users. Please, let us know about any feedback you may have in [this dicussion](https://github.com/meilisearch/product/discussions/532). Done in #3347, #3569 and on [Charabia](https://github.com/meilisearch/charabia/releases/tag/v0.7.1) by @choznerol, @cymruu, @james-2001 and @ManyTheFish. ## Other improvements * Allow wildcards (`*`) at the end of index names when creating API keys or tenant tokens (#3174) @Kerollmops & @akhildevelops * Customize the CSV delimiter (default: `,`) with the `csvDelimiter` parameter in the document addition or update, and document addition or replace endpoints (#3505, #3534) @MixusMinimax and @irevoire * Improve error messages: introduction of "did you mean ...?" suggestions when making typos in a Meilisearch parameter (#3492) @irevoire * Automatically batch addition and deletion tasks together to speed up indexing (#3470) @irevoire * Accept `null` as a valid `_geo` field when importing or updating documents (#3515) @irevoire * Reduce crate size (from ~200MB to ~50MB) by compressing dictionaries (#3347) @ManyTheFish * Cache the indexes stats results (#3541) @irevoire # Fixes 🐞 * Improve facet string normalization: fixes issues when using `sortBy` with accented characters (#3372) @ManyTheFish * Fix web interface issues: bump version of search preview to [v0.2.7](https://github.com/meilisearch/mini-dashboard/releases/tag/v0.2.7) (#3623) @bidoubiwa * Unify "Bad latitude" and "Bad longitude" errors (#3479) @cymruu * Prevent "Cannot allocate memory" errors when creating a lot of indexes (#3331) @dureuill * Fix Japanese support (see [the related issue](https://github.com/meilisearch/meilisearch/issues/2403)) thanks to the new language detection (#3347) @ManyTheFish * Remove `MDB_BAD_VALSIZE` error by avoiding fetching an LMDB value with an empty string (#3577) @Kerollmops * Fix snapshots permissions on Unix system (#3561) @irevoire * Ensure the task queue is correctly imported (#3597) @irevoire * Fix facet normalization (#3621) @ManyTheFish # Misc The following changes do not impact user experience. * GitHub CIs & test suite * Create a preview environment for every PR using Uffizzi (#3040 and #3482) @waveywaves * Improve `publish-aarch64` job that used ubuntu-18.04 (#3568) @curquiza * Add tests with rust nightly in CI (#3495) @ztkmkoo * Add `--all` to test CI (#3403) @curquiza * Remove cache from test CI to prevent Windows CI failures (#3422) @curquiza * Pin Rust version in Clippy job (#3451) @curquiza * Update comments in version bump CI (#3519) @curquiza * Fix cargo flaky (#3348) @irevoire * Make clippy happy for Rust 1.67, allow `uninlined_format_args` (#3434) @dureuill * Internal documentation * Fixup `dumps-destination` into `dump-directory` section header in help link (#3199) @dureuill * Add prototype guide to CONTRIBUTING.md (#3433) @curquiza * Rework technical information in the README (#3399) @curquiza * Add image hyperlink to the README.md (#3420) @gregsadetsky * Update migration link to the docs (#3539) @curquiza * Internal changes * Add support for running milli on iOS and macOS when using App Sandbox by activating Cargo feature for LMDB's POSIX semaphores (#3407) @GregoryConrad * Extract creation and last updated timestamp for v3 dump (#3343) @FrancisMurillo * Gitignore VScode & Jetbrains IDE folders (#3480) @AymanHamdoun * Import the milli repository (#3346) @Kerollmops * Identify builds git tagged with `prototype-...` in CLI and analytics (#3467) @dureuill * Use the workspace inheritance: the Meilisearch version is now present in `Cargo.toml` at the root of the repository (#3499) @irevoire * Dependencies: bump libgit2-sys and tokio (#3409 and #3456) ❀️ Thanks again to our external contributors: - [Meilisearch](https://github.com/meilisearch/meilisearch): @akhildevelops, @AymanHamdoun, @cymruu, @FrancisMurillom @GregoryConrad, @gregsadetsky, @james-2001, @MixusMinimax, @waveywaves, and @ztkmkoo. - [Charabia](https://github.com/meilisearch/charabia): @choznerol, @cymruu, and @james-2001.