Meilisearch v1.16.0stable Released Aug 04, 2025
Impact Score: 5/10

Meilisearch: v1.16.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.16.0. Source highlight: Meilisearch v1.16 introduces two main features: multimodal embeddings and a new `/export` route. Multimodal embeddings use AI-powered search to index images in addition to textual documents. The `/export` route simplifies migrating from a local Meilisearch instance to Meilisearch Cloud.

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 (3)

  • Add support for nested wildcards in `attributes_to_search_on`
  • Add fallback instance option to revert to old indexer
  • Introduce filters in the chat completions

โšก Performance & Enhancements (6)

  • Improve support of geo field extraction from documents
  • Use all CPUs when importing dumps
  • Display the last embedder error live in batches
  • Allow sorting on the /documents route
  • A Read-Only Admin key will be created in new empty databases, to prevent accidentally writing to database while investigating,
  • Use the edition 2024 documents indexer in the dumps

๐Ÿ”ง Bug Fixes & Patches (6)

  • Improve the performance when managing single-typo words
  • Fix distinct attribute functionality for hybrid search
  • Fix bug related to Cyrillic having different typo tolerance due to byte counting bug
  • Fix Gemini `base_url` when used with OpenAI clients
  • Remove Gemini from LLM-providers list due to incompatibility with OpenAI
  • Fix bug when using the environment variable for `--experimental-limit-batched-tasks-total-size`
๐Ÿ“„ View Raw Release Notes (Original Developer Log)
Meilisearch v1.16 introduces two main features: multimodal embeddings and a new `/export` route. Multimodal embeddings use AI-powered search to index images in addition to textual documents. The `/export` route simplifies migrating from a local Meilisearch instance to Meilisearch Cloud. ๐Ÿงฐ 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 โค๏ธ). # New features and updates ๐Ÿ”ฅ ## Experimental feature: Multimodal embeddings v1.16 allows indexing and searching non-textual documents, as well as performing searches with image queries. This new feature uses multimodal embedders to provide a common semantic representation for images, texts, and any other piece of data. ### Usage First, enable the `multimodal` experimental feature: ```sh curl \ -X PATCH 'MEILISEARCH_URL/experimental-features/' \ -H 'Content-Type: application/json' \ --data-binary '{ "multimodal": true }' ``` Next, pick an embedder provider that supports multimodal embeddings such as [Cohere](https://docs.cohere.com/v2/reference/embed) or [VoyageAI](https://docs.voyageai.com/docs/multimodal-embeddings) to start building the embedding configuration. The following is an example configuration for multimodal embedder using VoyageAI: ```sh curl \ -X PATCH 'MEILISEARCH_URL/indexes/INDEX_NAME/settings/embedders' \ -H 'Content-Type: application/json' \ --data-binary '{ "voyage": { "source": "rest", "url": "https://api.voyageai.com/v1/multimodalembeddings", "apiKey": "VOYAGE_API_KEY", "indexingFragments": { "text": { "value": { "content": [ { "type": "text", "text": "A movie titled {{doc.title}} whose description starts with {{doc.overview|truncateWords:20}}." } ] } }, "poster": { "value": { "content": [ { "type": "image_url", "image_url": "{{doc.poster}}" } ] } } }, "searchFragments": { "poster": { "value": { "content": [ { "type": "image_url", "image_url": "{{media.poster}}" } ] } }, "image": { "value": { "content": [ { "type": "image_base64", "image_base64": "data:{{media.image.mime}};base64,{{media.image.data}}" } ] } }, "text": { "value": { "content": [ { "type": "text", "text": "{{q}}" } ] } } }, "request": { "inputs": [ "{{fragment}}", "{{..}}" ], "model": "voyage-multimodal-3" }, "response": { "data": [ { "embedding": "{{embedding}}" }, "{{..}}" ] } }} ``` The configuration above sets up Meilisearch to generate vectors for two fields: `text` and `poster`. It also allows users to perform searches with an image URL, a raw image, or regular text. Use the new `media` search parameter together with one of the `searchFragments` you specified in your embedder to search with an image: ```sh curl -X POST 'MEILISEARCH_URL/indexes/INDEX_NAME/search' \ -H 'content-type: application/json' \ --data-binary '{ "media": { "poster": "https://image.tmdb.org/t/p/w500/pgqj7QoBPWFLLKtLEpPmFYFRMgB.jpg" }, "hybrid": { "embedder": "EMBEDDER_NAME" } }' ``` You can also perform a text search with `q` and `hybrid`: ```sh curl -X POST 'MEILISEARCH_URL/indexes/INDEX_NAME/search' \ -H 'content-type: application/json' \ --data-binary '{ "q": "A movie with lightsabers in space", "hybrid": { "embedder": "voyage", "semanticRatio": 0.5 } }' ``` Meilisearch performs searches all fields with embeddings when parsing `hybrid` queries targeting indexes with multimodal embedders. For more information about this feature, please refer to its [public usage page](https://meilisearch.notion.site/Multimodal-search-usage-1c14b06b651f80c1bf9effe56dbeef54) Done by @dureuill in [#5596](https://github.com/meilisearch/meilisearch/pull/5596) ## The new `/export` route v1.16 introduces a new `/export` route that allows transferring documents between instances without having to create a dump or a snapshot. This feature is particularly useful when migrating from a local machine to Meilisearch Cloud. ### Usage To transfer data between instances, query `/export` and point its `url` parameter to the URL of the target instance: ```sh curl \ -X POST 'MEILISEARCH_URL/export' \ -H 'Content-Type: application/json' \ --data-binary '{ "url": "http://localhost:7711" }' ``` This will generate an export and task start migrating data between instances. Depending on the target instance, you may also have to supply an API key with full admin permissions in the `apiKey` parameter. Consult the documentation for an exhaustive list of accepted parameters. If the request fails, Meilisearch will retry a few times before setting its status to failed. You may also cancel an export task manually. In this case, Meilisearch will interrupt the task locally, but not in the target instance. Done by @kerollmops with the help of @mubelotix in [#5670](https://github.com/meilisearch/meilisearch/pull/5670) ## Other improvements * Add support for nested wildcards in `attributes_to_search_on` by @lblack00 in https://github.com/meilisearch/meilisearch/pull/5548 * Improve support of geo field extraction from documents by @nnethercott in https://github.com/meilisearch/meilisearch/pull/5592 * Use all CPUs when importing dumps by @nnethercott in https://github.com/meilisearch/meilisearch/pull/5527 * Display the last embedder error live in batches by @Mubelotix in https://github.com/meilisearch/meilisearch/pull/5707 * Add fallback instance option to revert to old indexer by @ManyTheFish in https://github.com/meilisearch/meilisearch/pull/5687 * Introduce filters in the chat completions by @Kerollmops in https://github.com/meilisearch/meilisearch/pull/5710 * Allow sorting on the /documents route by @Mubelotix in https://github.com/meilisearch/meilisearch/pull/5716 * A Read-Only Admin key will be created in new empty databases, to prevent accidentally writing to database while investigating, by @Mubelotix in https://github.com/meilisearch/meilisearch/pull/5693 * Use the edition 2024 documents indexer in the dumps by @Kerollmops in https://github.com/meilisearch/meilisearch/pull/5762 # Fixes ๐Ÿž * Improve the performance when managing single-typo words by @dureuill in https://github.com/meilisearch/meilisearch/pull/5551 * Fix distinct attribute functionality for hybrid search by @dureuill in https://github.com/meilisearch/meilisearch/pull/5614 * Fix bug related to Cyrillic having different typo tolerance due to byte counting bug by @arthurgousset in https://github.com/meilisearch/meilisearch/pull/5617 * Fix Gemini `base_url` when used with OpenAI clients by @diksipav in https://github.com/meilisearch/meilisearch/pull/5692 * Remove Gemini from LLM-providers list due to incompatibility with OpenAI by @Kerollmops in https://github.com/meilisearch/meilisearch/pull/5708 * Fix bug when using the environment variable for `--experimental-limit-batched-tasks-total-size` by @Kerollmops in https://github.com/meilisearch/meilisearch/pull/5705 * Fix `disableOnNumbers` not being affected by typo tolerance settings resets by @Nymuxyzo in https://github.com/meilisearch/meilisearch/pull/5702 * Make sure to recover from missing update files by @Kerollmops in https://github.com/meilisearch/meilisearch/pull/5683 * Add analytics to chat completions by @Kerollmops in https://github.com/meilisearch/meilisearch/pull/5709 * Fix: Preserve order of searchable attributes when modified by @ManyTheFish in https://github.com/meilisearch/meilisearch/pull/5751 * Fix Total Hits being wrong when rankingScoreThreshold is used by @Mubelotix in https://github.com/meilisearch/meilisearch/pull/5725 * Fix incorrect document count in stats after clearing all documents by @kametsun in https://github.com/meilisearch/meilisearch/pull/5754 * Fix chat settings dumpless upgrade by @Kerollmops in https://github.com/meilisearch/meilisearch/pull/5761 * Fix panic when attempting to remove an embedder that does not exist by @Mubelotix in https://github.com/meilisearch/meilisearch/pull/5734 * Fixes an issue where sending searchParameters: `{}` in index chat settings would incorrectly set the limit to 20 instead of resetting to empty defaults * Update the mini-dashboard to v0.2.22 and fix a crash by @Kerollmops in https://github.com/meilisearch/meilisearch/pull/5798 # Misc * Dependencies updates * Remove old dependencies by @Mubelotix in https://github.com/meilisearch/meilisearch/pull/5689 * Upgrade dependencies by @Kerollmops in https://github.com/meilisearch/meilisearch/pull/5686 * Bump the mini-dashboard to v0.2.20 by @Kerollmops in https://github.com/meilisearch/meilisearch/pull/5728 * CIs and tests (34 PRs, one folk, yes!) * perf: Faster IT tests - stats.rs by @martin-g in https://github.com/meilisearch/meilisearch/pull/5572 * perf: Faster index::get_index IT tests by @martin-g in https://github.com/meilisearch/meilisearch/pull/5578 * tests: Assert succeeded/failed for the index::delete_index IT tests by @martin-g in https://github.com/meilisearch/meilisearch/pull/5580 * tests: Faster index::search::mod IT tests by @martin-g in https://github.com/meilisearch/meilisearch/pull/5584 * perf: Faster index::update_index IT tests by @martin-g in https://github.com/meilisearch/meilisearch/pull/5579 * perf: Faster integration tests for add_documents.rs by @martin-g in https://github.com/meilisearch/meilisearch/pull/5574 * tests: Faster search::errors IT tests by @martin-g in https://github.com/meilisearch/meilisearch/pull/5599 * tests: Faster search::locales IT tests by @martin-g in https://github.com/meilisearch/meilisearch/pull/5601 * tests: Faster search::matching_strategy IT tests by @martin-g in https://github.com/meilisearch/meilisearch/pull/5602 * tests: search::pagination IT tests by @martin-g in https://github.com/meilisearch/meilisearch/pull/5604 * tests: Faster search::restricted_searchable IT tests by @martin-g in https://github.com/meilisearch/meilisearch/pull/5605 * tests: Faster settings::distinct IT tests by @martin-g in https://github.com/meilisearch/meilisearch/pull/5606 * tests: Faster settings::proximity_settings IT tests by @martin-g in https://github.com/meilisearch/meilisearch/pull/5609 * tests: Faster settings::tokenizer_customization IT tests by @martin-g in https://github.com/meilisearch/meilisearch/pull/5610 * tests: Faster search::facet_search IT tests by @martin-g in https://github.com/meilisearch/meilisearch/pull/5600 * tests: Faster settings::get_settings IT tests by @martin-g in https://github.com/meilisearch/meilisearch/pull/5607 * tests: Faster vector::binary_quantized IT tests by @martin-g in https://github.com/meilisearch/meilisearch/pull/5618 * tests: Faster search::distinct IT tests by @martin-g in https://github.com/meilisearch/meilisearch/pull/5620 * tests: Faster similar::errors IT tests by @martin-g in https://github.com/meilisearch/meilisearch/pull/5621 * tests: Faster documents::get_documents IT tests by @martin-g in https://github.com/meilisearch/meilisearch/pull/5624 * tests: Faster documents::delete_documents IT tests by @martin-g in https://github.com/meilisearch/meilisearch/pull/5619 * tests: Faster search::geo IT tests by @martin-g in https://github.com/meilisearch/meilisearch/pull/5623 * tests: Faster search::hybrid IT tests by @martin-g in https://github.com/meilisearch/meilisearch/pull/5625 * tests: Faster tasks::mod IT tests by @martin-g in https://github.com/meilisearch/meilisearch/pull/5615 * tests: Faster stats::mod IT tests by @martin-g in https://github.com/meilisearch/meilisearch/pull/5611 * tests: Faster search::filters IT tests by @martin-g in https://github.com/meilisearch/meilisearch/pull/5622 * tests: Use Server::wait_task() instead of Index::wait_task() in search:: by @martin-g in https://github.com/meilisearch/meilisearch/pull/5700 * tests: Use Server::wait_task() instead of Index::wait_task() in index:: by @martin-g in https://github.com/meilisearch/meilisearch/pull/5698 * tests: Use Server::wait_task() instead of Index::wait_task() in settings:: by @martin-g in https://github.com/meilisearch/meilisearch/pull/5699 * tests: Use Server::wait_task() instead of Index::wait_task() in documents:: by @martin-g in https://github.com/meilisearch/meilisearch/pull/5697 * tests: Faster documents::update_documents IT tests by @martin-g in https://github.com/meilisearch/meilisearch/pull/5682 * tests: Faster similar::mod IT tests by @martin-g in https://github.com/meilisearch/meilisearch/pull/5680 * tests: Faster document::errors IT tests by @martin-g in https://github.com/meilisearch/meilisearch/pull/5677 * tests: Faster settings::prefix_search_settings IT tests by @martin-g in https://github.com/meilisearch/meilisearch/pull/5681 * tests: Faster search::multi IT tests by @martin-g in https://github.com/meilisearch/meilisearch/pull/5603 * Misc * Ignore flaky test by @dureuill in https://github.com/meilisearch/meilisearch/pull/5627 * ci: Use `GITHUB_TOKEN` secret for the `db change check` workflow by @martin-g in https://github.com/meilisearch/meilisearch/pull/5632 * chore: Fix English grammar in SearchQueue's comments by @martin-g in https://github.com/meilisearch/meilisearch/pull/5642 * Typo fix by @mcmah309 in https://github.com/meilisearch/meilisearch/pull/5589 * docs: Recommend using a custom path for the benches' data by @martin-g in https://github.com/meilisearch/meilisearch/pull/5672 โค๏ธ Thanks again to our external contributors: - [Meilisearch](https://github.com/meilisearch/meilisearch): @martin-g, @lblack00, @mcmah309, @nnethercott, @arthurgousset, @Mubelotix, @diksipav, @Nymuxyzo, @kametsun - [Arroy](https://github.com/meilisearch/arroy): @nnethercott