Skip to content

Conversation

@renovate
Copy link
Contributor

@renovate renovate bot commented May 29, 2025

This PR contains the following updates:

Package Update Change
getmeili/meilisearch minor v1.11.1 -> v1.24.0

Release Notes

meilisearch/meilisearch (getmeili/meilisearch)

v1.24.0: 🦞

Compare Source

This release features some improvements with the interaction of the vector store and the searchCutoffMs when using the "vectorStore": "experimental" index setting. It also introduces the metadata header Meili-Include-Metadata on the search request that adds a metadata field to the response. These metadatas contains one uid by query and a reminder of the indexUid and its primary key. We also introduced minor bug fixes around the compaction to improve the interaction with task cancellation.

✨ Enhancement
🔩 Miscellaneous
👥 New Contributors

Full Changelog: meilisearch/meilisearch@v1.23.0...v1.24.0

v1.23.0: 🐘

Compare Source

This release introduces a new compact route on the index routes, which appends a new compaction task to the queue. Meilisearch uses an LMDB environment by index, and indexes start to fragment after some time. We have noticed that the indexes generally have 30% fragmentation. By defragmenting the environment, we've seen large (2-4x) speed-ups in terms of search and indexation. This is primarily due to the reordering of the LMDB internal pages and the removal of scattered free pages throughout the file, thereby relocating the content to the beginning.

We also worked on parallelizing the post-processing of facets. We noticed that a lot of time was spent iterating over the prefixes of the index in a single-threaded loop. We redesigned this part of the indexation to make it multi-threaded. We have seen a 4x and 6x improvement in terms of time spent on this operation.

✨ Improvements

🦋 Bug Fixes

🔩 Miscellenaous

New Contributors

Full Changelog: meilisearch/meilisearch@v1.22.1...v1.23.0

v1.22.3: 🐦‍🔥

Compare Source

This version contains a minor fix that affects remote federated search users. If you are not a remote federated search user, it is not necessary to migrate from v1.22.x.

🦋 Bugfixes

  • v1.22.2 raised the remote federated search timeout for waiting nodes from 5 to 30s. This version makes it configurable by setting the environment variable MEILI_EXPERIMENTAL_REMOTE_SEARCH_TIMEOUT_SECONDS to a positive integer value. Please note that no CLI flag or configuration entry is available. By @​dureuill in #​5932

v1.22.2: 🐦‍🔥

Compare Source

🦋 Bugfixes

  • Remote federated search would declare remotes as "timeout'd" after 5s. This timeout was raised to 30s to accomodate some search configurations. By @​dureuill in #​5919

v1.22.1

Compare Source

🐛 Bug Fixes

❤️ Huge thanks to our contributors: @​dureuill and @​irevoire.

v1.22.0: 🐦‍🔥

Compare Source

🚀 Enhancements

  • Introduce a new geo backend to store geojson and filter on polygon
    1. Make the _geojson field filterable
    2. Then send your documents with a _geojson field filled with a valid geojson
    3. Filter your documents with the new _geoPolygon filter, or the old _geoBoudingBox and _geoPoints filter

🐛 Bug Fixes

❤️ Huge thanks to our contributors: @​nnethercott, @​Kerollmops, @​ManyTheFish, @​dureuill and @​irevoire.

Full Changelog: meilisearch/meilisearch@v1.21.0...v1.22.0

v1.21.0: 🐷

Compare Source

🚀 Enhancements

  • Introduce a new vector store backend for better performance, especially if using the binary quantization
    1. Enable the new vectorStoreSetting experimental feature
    2. Then change the vectorSetting index setting to "experimental" for the indexes where you want to try the new vector store
  • Add Persian support (update charabia to v0.9.7) (#​5848) @​ManyTheFish

🐛 Bug Fixes

  • Observing the progress trace during indexing no longer removes parts of the trace (#​5884) @​irevoire
  • Fix dumpless upgrade decoding error when upgrading with a rest embedder (#​5886) @​dureuill.
    • In case you had encountered the issue, use the dumpless upgrade to v1.21 to fix it.

❤️ Huge thanks to our contributors: @​ja7ad, @​agourlay, @​Kerollmops, @​ManyTheFish, @​dureuill and @​irevoire.

v1.20.0: 🦟

Compare Source

🚀 Enhancements

🐛 Bug Fixes

🔒 Security

⚙️ Maintenance/misc

❤️ Huge thanks to our contributors: @​ManyTheFish, @​arithmeticmean, @​curquiza, @​dureuill, @​irevoire, @​shreeup and dependabot[bot].

v1.19.1: 🪸

Compare Source

🐛 Performance improvements

Enhance hybrid search with filter performances

In previous versions of Meilisearch, mixing hybrid search with filters, as shown below, could multiply the search time by hundreds.

{
  "q": "hello world",
  "limit": 100,
  "filter": "tag=science"
  "hybrid": {
    "semanticRatio": 0.5,
    "embedder": "default"
  }
}

Meilisearch will now directly compute the semantic distance with the filtered candidates if only a few candidates come from the filter, instead of searching for the closest embeddings matching the filter in the vector database.

v1.19.0: 🪸

Compare Source

🚀 Enhancements

Automatically shard documents to scale horizontally

Meilisearch can now automatically distribute documents between multiple instances using the new sharding feature.

Find a guide on implementing sharding in the documentation.

[!NOTE]
Sharding is an advanced feature available exclusively in Meilisearch Enterprise Edition (EE).

The EE features are governed by the Business Source License 1.1, which allows you to use, test, and develop with sharding for free in non-production environments. Please reach out to us before using it in production.

Added in #​5784 by @​dureuill

🐛 Bug Fixes

  • Takes the allowed max memory of the container when computing the max memory to use (#​5729) @​martin-g

❤️ Huge thanks to our contributors: @​Kerollmops, @​dureuill and @​martin-g.

v1.18.0: 🕷️

Compare Source

🚀 Enhancements

❤️ Huge thanks to our contributors: @​Kerollmops, @​Mubelotix, @​irevoire and @​qdequele.

v1.17.1: 🐀

Compare Source

🚀 Enhancements

⚙️ Maintenance/misc

v1.17.0: 🐀

Compare Source

[!NOTE]
Want to make your search feel more natural? Try our new chat completions route and turn your queries into conversations. Easy to set up, works with your favorite LLMs.

Enhancements
Bugs
  • Turn chat settings to PATCH by @​Mubelotix in #​5807
    ⚠️ This fix leads to a breaking change on: PUTPATCH. Integrations and SDKs will adapt to this change.
  • Fix snapshotCreation task being included in snapshot by @​Mubelotix in #​5773
Maintenance

v1.16.0: 🦚

Compare Source

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:

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 or VoyageAI to start building the embedding configuration.

The following is an example configuration for multimodal embedder using VoyageAI:

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:

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:

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

Done by @​dureuill in #​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:

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

Other improvements

Fixes 🐞

Misc

❤️ Thanks again to our external contributors:

v1.15.2: 🦘

Compare Source

This patch release introduces a major fix and some minor fixes.

Major fix: searchable attributes database bug

Some searchable fields were removed from the searchable databases when they were removed from the filterableAttributes setting.
This made them unsearchable, although they were still precise in the searchableAttributes setting.

Fixed by @​ManyTheFish in #​5660

Minor fixes

v1.15.1: 🦘

Compare Source

Meilisearch v1.15.1 adds new experimental conversational features and enables LLM-driven chat features.

🧰 All official Meilisearch integrations (including SDKs, clients, and other tools) are compatible with this Meilisearch release. Integration deployment takes 4 to 48 hours after a new version becomes available.

Some SDKs might not include all new features. Please look over 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 ❤️).

Chat with your indexes

After enabling the experimental chat feature, you can create a chat workspace with the appropriate settings.
We have a guide on how to set up a good chat interface for your indexes.

curl -X POST 'http://localhost:7700/chats/my-assistant/settings' \
  -H 'Content-Type: application/json' \
  -d '{
    "source": "openAi",
    "apiKey": "sk-abc..."
  }'

Then by using the official OpenAI SDK you'll be able to chat with your indexes.

import OpenAI from 'openai';

const client = new OpenAI({
  baseURL: 'http://localhost:7700/chats/my-assistant',
  apiKey: 'YOUR_MEILISEARCH_CHAT_API_KEY',
});

const completion = await client.chat.completions.create({
  model: 'gpt-3.5-turbo',
  messages: [{ role: 'user', content: 'What is Meilisearch?' }],
  stream: true,
});

for await (const chunk of completion) {
  console.log(chunk.choices[0]?.delta?.content || '');
}

Done by @​Kerollmops in #​5556.

v1.15.0: 🦘

Compare Source

Meilisearch v1.15 adds a new typo tolerance setting, allowing you to disable typo tolerance for numbers. It also enables comparison operators for string filters.

🧰 All official Meilisearch integrations (including SDKs, clients, and other tools) are compatible with this Meilisearch release. Integration deployment takes 4 to 48 hours after a new version becomes available.

Some SDKs might not include all new features. Please look over 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 🔥

Disable typo tolerance for numbers

Set typoTolerance.disableOnNumbers to true to disable typo tolerance for numbers:

curl -X POST 'http://localhost:7700/indexes/movies/settings' \
  -H 'Content-Type: application/json' \
  -d '{
    "typoTolerance": {"disableOnNumbers": true}
  }'

Deactivating the typo tolerance on numbers can be helpful when trying to reduce false positives, such as a query term 2024 returning results that include 2025 and 2004. It may also improve indexing performance.

Done by @​ManyTheFish in #​5494.

Lexicographic string filters

This release allows you to filter strings lexicographically by enabling comparison operators (<, <=, >, >=, TO) on string values:

curl -X POST 'http://localhost:7700/indexes/movies/search' \
  -H 'Content-Type: application/json' \
  -d '{
    "filter": "release_date >= '2024-06'"
  }'

This new feature can be particularly useful when filtering human-readable dates.

Done by @​dureuill in #​5535.

Other improvements

Fixes 🐞

  • Fix _matchesPosition length calculation to improve client-side cropping by @​shaokeyibb in #​5446
  • Fix _geo ranking rule by @​HDT3213 in #​5487
  • Fix a panic in the search that could happen when looking for typos with a search prefix having more than 65k possible hits in the DB by @​dureuill in #​5564
  • Make sure that passing MEILI_EXPERIMENTAL_MAX_NUMBER_OF_BATCHED_TASKS to 0 results in Meilisearch never processing any kind of task. By @​irevoire in #​5565
  • Forbid value 0 for maxTotalHits in the index settings by @​irevoire in #​5566
  • No longer reject documentTemplates that use array filters on documents (e.g. join) by @​dureuill in #​5593

Misc

❤️ Thanks again to our external contributors:

v1.14.0: 🦫

Compare Source

Meilisearch v1.14 gives more granular control over which parts of filters you can disable for indexing performance optimization. This release also includes composite embedders, which can improve embedding generation during search and indexing, and a new route to retrieve multiple documents by their IDs.

🧰 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 🔥

Granular filterable attribute settings

v1.14 gives you more control over which types of filter you want to disable in your searches. This allows you to further optimize indexing speeds by letting you activate only the filter features you need.

Use PATCH /indexes/INDEX_NAME/settings to specify which filters you want to enable for each attribute in your documents:

{
	"filterableAttributes": [
	  {
	    "attributePatterns": ["genre", "artist"],
	    "features": {
	      "facetSearch": true,
	      "filter": {
	        "equality": true,
	        "comparison": false
	      }
	    }
	  },
	  {
	    "attributePatterns": ["rank"],
	    "features": {
	      "facetSearch": false,
	      "filter": {
	        "equality": true,
	        "comparison": true
	      }
	    }
	  }
	]
}

For more details about this feature, please refer to the dedicated documentation page.

Done by @​ManyTheFish in #​5254.

Composite embedders

This feature allows using different embedders at search and indexing time. This can be useful when optimizing AI-powered search performance. For example, you may prefer to use:

  • A remote embedder during indexing, as remote embedders have higher bandwidth and can generate more embeddings per second
  • A local embedder when answering to search queries, as local embedders have lower latency and can respond more quickly to user input

To use the feature, follow these steps:

  1. Enable the Composite embedders feature with the Meilisearch Cloud interface, or with the /experimental-features route:
curl MEILISEARCH_URL/experimental-features \
  -H 'Content-Type: application/json'  \
  -d '{"compositeEmbedders": true}'
  1. Next, create an embedder, setting its source to "composite" and defining one searchEmbedder and one indexingEmbedder:
{
  "embedders": {
    "text": {
      "source": "composite",
      "searchEmbedder": {
        "source": "huggingFace",
        "model": "baai/bge-base-en-v1.5",
        "revision": "a5beb1e3e68b9ab74eb54cfd186867f64f240e1a"
      },
      "indexingEmbedder": {
        "source": "rest",
        "url": "https://URL.endpoints.huggingface.cloud",
        "apiKey": "hf_XXXXXXX",
        "documentTemplate": "Your {{doc.template}}",
        "request": {
          "inputs": [
            "{{text}}",
            "{{..}}"
          ]
        },
        "response": [
          "{{embedding}}",
          "{{..}}"
        ]
      }
    }
  }
}
  1. Once the composite embedder has been created, Meilisea

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Enabled.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot force-pushed the renovate/getmeili-meilisearch-1.x branch 2 times, most recently from a373212 to ce2f998 Compare June 9, 2025 11:48
@renovate renovate bot changed the title Update getmeili/meilisearch Docker tag to v1.14.0 Update getmeili/meilisearch Docker tag to v1.15.0 Jun 9, 2025
@renovate renovate bot force-pushed the renovate/getmeili-meilisearch-1.x branch from ce2f998 to 63cc2eb Compare June 11, 2025 23:57
@renovate renovate bot changed the title Update getmeili/meilisearch Docker tag to v1.15.0 Update getmeili/meilisearch Docker tag to v1.15.1 Jun 11, 2025
@renovate renovate bot force-pushed the renovate/getmeili-meilisearch-1.x branch 6 times, most recently from 58d994a to 5b2d837 Compare June 13, 2025 21:33
@renovate renovate bot changed the title Update getmeili/meilisearch Docker tag to v1.15.1 Update getmeili/meilisearch Docker tag to v1.15.2 Jun 13, 2025
@renovate renovate bot force-pushed the renovate/getmeili-meilisearch-1.x branch 18 times, most recently from 602c41d to 7483b8c Compare June 18, 2025 02:39
@renovate renovate bot force-pushed the renovate/getmeili-meilisearch-1.x branch 3 times, most recently from 95e80f0 to 4cf5c01 Compare October 24, 2025 13:54
@renovate renovate bot changed the title Update getmeili/meilisearch Docker tag to v1.24.0 chore(deps): update getmeili/meilisearch docker tag to v1.24.0 Oct 24, 2025
@renovate renovate bot force-pushed the renovate/getmeili-meilisearch-1.x branch 18 times, most recently from 6ccb67c to 50a7321 Compare October 26, 2025 02:38
@renovate renovate bot changed the title chore(deps): update getmeili/meilisearch docker tag to v1.24.0 Update getmeili/meilisearch Docker tag to v1.24.0 Oct 26, 2025
@renovate renovate bot force-pushed the renovate/getmeili-meilisearch-1.x branch 5 times, most recently from 5cbae9a to 45b69c6 Compare October 26, 2025 05:07
@renovate renovate bot force-pushed the renovate/getmeili-meilisearch-1.x branch from 45b69c6 to 7f69b7d Compare October 26, 2025 05:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants