Warning
Since this is a release candidate (RC), we do NOT recommend using it in a production environment. Is something not working as expected? We welcome bug reports and feedback about new features.
⚠ In particular, upgrading from a database containing embeddings is known not to work in RC.0 ⚠
Meilisearch v1.16 introduces two core features, multimodal embeddings allowing to index images, text and other formats; and the Export/Transfer of documents between instances easing the migration of a local Meilisearch into the cloud!
New features and updates 🔥 Multimodal embeddingsMeilisearch now allows conveniently indexing images, text and other formats in documents, and to retrieve documents by searching with an image or a text query.
This new feature leverages multimodal embedders to provide a common semantic representation for images, texts, and any other piece of data in a format supported by the chosen model.
As an example, the sample movies
dataset contains movie descriptions and links to movie posters. Using this new feature, it is possible to use text to search both in the descriptions and the posters, or to use an image to search for similar looking posters, or movies with a description matching the query image.
To use multimodal embeddings, start by enabling the multimodal
experimental feature:
curl $MEILISEARCH_URL/experimental-features -X PATCH -H 'Content-type: application/json' -d '{"multimodal": true}'
Then pick an embedder service that supports multimodal such as cohere or VoyageAI to start building the embedding configuration.
An example configuration for VoyageAI to index the description and poster from the movies database, and to search by text or image, might look like the following:
Then, to search by poster (image URL):
To search by image data (encoded as base64):
To search by text (performing a hybrid search):
For more information about this feature, please refer to its public usage page
Export/Transfer documents between instancesMeilisearch now allows to transfer documents from an instance to another without having to create a dump or a snapshot. This feature will ease the migration to the Cloud by streaming all the documents from a local instance to a cloud one.
UsageWe expose one single route on the instance which accepts a bunch of parameters.
url
: Where do we want to send our settings and documents.apiKey
: (optional) The API key to have the rights to send those requests. Usually the master key of the remote machine.payloadSize
: (optional) A human readable size defining the size of the payloads to send. Defaults to 50 MiB.indexes
: (optional) A set of patterns of matching the indexes you want to export. If not defined, defaults to all indexes without filter.filter
: (optional) A filter defining the subset of documents to actually export.overrideSettings
: (optional, default false) When false, will not set settings nor update the primary key on indexes that already exist on the remote instance. Will still send the documentsPOST: /export
{ "url": "http://localhost:7711", "apiKey": null, "payloadSize": "123 MiB", "indexes": { "*": { "filter": null, "overrideSettings": true } } }
Response:
{ "taskUid": 2, "indexUid": null, "status": "enqueued", "type": "export", "enqueuedAt": "2025-06-26T12:54:10.785864Z" }
One task can retry requests in case of failure (not indefinitely, though) and can also be canceled. However, keep in mind that canceling this export task will not cancel tasks received by the targeted Meilisearch instance.
Done by @Kerollmops with the help of @Mubelotix in #5670
Other improvementsattributes_to_search_on
by @lblack00 in #5548base_url
when used with OpenAI clients by @diksipav in #5692disableOnNumbers
reset by @Nymuxyzo in #5702GITHUB_TOKEN
secret for the db change check
workflow by @martin-g in #5632❤️ Thanks again to our external contributors:
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4