Meilisearch 1.12
Meilisearch 1.12 brings significant indexing speed improvement and introduces new APIs disable prefix search and facet search, and retrieve task batches.
We're excited to introduce Meilisearch v1.12. In this article, we'll cover the most significant changes. For a full list of updates, visit the changelog on GitHub.
Meilisearch 1.11 is available on Meilisearch Cloud, too—upgrade now!
New: facetSearch
and prefixSearch
index settings
Meilisearch 1.12 introduces new APIs to disable facet search and prefix search. When disabled, both these settings allow Meilisearch to skip building the required data structures to enable these features. As a result, the indexing process gets much faster.
Disabling these features can impact search result relevancy. Be sure to assess whether your product relies on them before proceeding.
Updating facet search index settings
Use the new API to update facet search index settings:
// disable facet search client.index('my_index').setFacetSearch(false) // enable facet search (default) client.index('my_index').setFacetSearch(true)
Updating prefix search index settings
Use the new API to update prefix search index settings:
// disable prefix search client.index('my_index').setPrefixSearch('disabled') // enable prefix search (default) client.index('my_index').setPrefixSearch('indexingTime')
New: batches API
Meilisearch 1.12 introduces a new batches API to retrieve data about batches. A batch is a set of tasks processed together by Meilisearch.
Here is an example batch object returned (as of Meilisearch 1.12.0):
{ "uid": 160, "progress": { "steps": [ { "currentStep": "processing tasks", "finished": 0, "total": 2 }, { "currentStep": "indexing", "finished": 2, "total": 3 }, { "currentStep": "extracting words", "finished": 3, "total": 13 }, { "currentStep": "document", "finished": 12300, "total": 19546 } ], "percentage": 37.986263 }, "details": { "receivedDocuments": 19547, "indexedDocuments": null }, "stats": { "totalNbTasks": 1, "status": { "processing": 1 }, "types": { "documentAdditionOrUpdate": 1 }, "indexUids": { "movies": 1 } }, "duration": null, "startedAt": "2024-12-12T09:44:34.124726733Z", "finishedAt": null }
Please note that the get batches API accepts the same parameters as the get tasks API, allowing you to retrieve batches by filtering by task data.
For example, you can use GET /batches?uid=123
to retrieve batches containing tasks with a taskUid
of 123
.
Tasks API update
For better integration, the tasks API now includes a batchUid
field in task objects. You can use this value to retrieve details about a specific batch using the API to get one batch.
Indexing speed improvements
Meilisearch 1.12 brings indexing speed improvements across the board for servers making use of multiple cores and having good I/O throughput.
This new release brings:
- 2x faster raw document insertion
- 4x faster incremental document updates in large databases
- 1.5x faster embedding generation
Additionally, this release makes task cancellation faster. On less powerful machines, indexing time remains similar but may show slight improvements.
These advancements build upon the indexing customization and speed enhancements introduced in Meilisearch 1.6.
Contributors shout-out
We want to give a massive thank you to the external contributors who made this release possible. Thanks to @airycanon, @DerTimonius, @flevi29, @LukasKalbertodt, @PedroTurik, and @wuast94 for their contribution to Meilisearch, and @dqkqd and @tats-u for their work on charabia.
We also want to extend special thanks to our SDK maintainers working hard to make Meilisearch available across many languages and frameworks.
And that’s a wrap for v1.12! These release notes only highlight the most significant updates. For an exhaustive listing, read the changelog on GitHub.
Upgrade with ease using Meilisearch Cloud.
For more information, subscribe to our monthly newsletter, check out the roadmap, or join our Product Discussions.
For anything else, join our developers community on Discord.