Meilisearch 1.11

Carolina Ferreira

Carolina Ferreira

Developer Advocate @ Meilisearch

··6 min read

We're excited to introduce Meilisearch v1.11. 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!

Experimental: vector database indexing performance improvements

Meilisearch v1.11 introduces a new embedder option: binaryQuantized.

Binary quantization compresses vectors by encoding each dimension with 1-bit values, significantly boosting performance, especially in datasets with over 1M documents and models with more than 1024 dimensions.

Smaller embeddings (under 1024 dimensions) tend to give worse results. With fewer dimensions, the binary vector doesn't retain enough information for good relevancy.

Enabling this feature permanently updates all vectors to contain only 1s and -1s, which can greatly affect search relevancy. This change is irreversible.

Before enabling this feature, we recommend testing it in a smaller or duplicate index in a development environment to evaluate its impact on your use case.

Experimental: AI-powered search improvements

Breaking changes

This release introduces several breaking changes for feature stabilization.

embedder parameter becomes mandatory

In previous versions, the default embedder was automatically used for search and similar requests when no embedder was specified. Starting with v1.11, it’s now mandatory to specify the embedder parameter when performing:

  • Semantic or hybrid search via GET and POST where the embedder must be included as part of the hybrid object.
  • Similarity search via GET and POST, where the embedder is required as a top-level parameter.
javascript

Additionally, even for full-vector searches (when using vector without q), you must include the hybrid object with the embedder.

javascript

Non-zero semanticRatio now ignored when passing vector without q

Before Meilisearch v1.11, when performing a search with the vector and hybrid parameters but without q, a placeholder keyword search occurred unless hybrid.semanticRatio was set to 1.0. In v1.11, a semantic search is always performed unless hybrid.semanticRatio is set to 0.0.

Additions and improvements

Default OpenAI model update

The default OpenAI model has been updated from text-embedding-ada-002 to the new text-embedding-3-small. This new model is both more cost-effective and more accurate than the legacy ada model, offering better performance at a lower cost.

New embedder parameter

Meilisearch 1.11's new documentTemplateMaxBytes parameter allows truncating the document's template text when it exceeds the specified byte limit. It is set, by default, to 400 bytes.

This change is backward compatible. Existing embedders will retain the 400-byte default, with no need to recompute embeddings during the upgrade. The new limit will only apply when a document is modified and the template is re-rendered.

Improved document template

Fields in documentTemplate now include the field.is_searchable property. The default document template will filter out both empty fields and fields not in the searchable attributes list. The new default template only applies to embedders created starting with v1.11.

liquid

Federated search improvements: facet distribution and stats

Meilisearch v1.11 introduces two new options for federated searches: facetsByIndex and mergeFacets. These options allow you to request facet distribution and stats for federated search results.

Facet Information by index

To retrieve facet distribution and stats for each individual index, use the facetsByIndex option.

json

The response will include facet distribution and stats for each index:

json

Merged facet information

To get facet distribution and stats from all indexes in a single result, use both facetsByIndex and mergeFacets:

json

The response will include merged facet data:

json

Experimental: new STARTS_WITH filter operator

The new STARTS_WITH filter operator matches any field values that start with the specified string pattern:

json

This is an experimental feature. To enable it, use the experimental features endpoint and set the containsFilter option to true. Note that this will also activate the CONTAINS filter operator.

Share your feedback via this GitHub discussion

Contributors shout-out

We want to give a massive thank you to the contributors who made this release possible: @iornstein for their help with Meilisearch, and @luflow, @tkhshtsh0917 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.11! These release notes only highlights the most significant updates. For an exhaustive listing, read the changelog on Github.

Upgrade with ease using Meilisearch Cloud.

Open Meilisearch Cloud


Stay in the loop of everything Meilisearch by subscribing to our monthly newsletter. To learn more about Meilisearch's future and help shape it, take a look at our roadmap and participate in our Product Discussions.

For anything else, join our developers community on Discord.

Carolina Ferreira

Carolina Ferreira

Developer Advocate @ Meilisearch

Carolina joined Meilisearch in 2020 as a Developer Advocate. With a background in translation and teaching, she discovered programming by chance and quickly became passionate about it. She has worked in DevRel and tech support and is now transitioning into a Solution Engineer role, enjoying the diverse challenges along the way. Outside of work, she loves staying active, music, cinema, traveling, and exploring new cuisines—one of her favorite parts of any trip.

Related articles