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.25.0

Release Notes

meilisearch/meilisearch (getmeili/meilisearch)

v1.25.0: 🐈‍⬛

Compare Source

✨ Enhancement

🔬 [Experimental]: Search personalization by @​ManyTheFish in #​5775

Add the ability to dynamically rerank the search results based on Cohere using a personalized prompt.
For more information on how to set it up, see the dedicated experimental feature discussion.

🔬 [Experimental]: Upload snapshot tarballs to S3 by @​Kerollmops in #​5948

Add the ability to upload snapshots directly to S3. It has many advantages, such as being able to stream the entire process and effectively utilizing multipart technology to send chunks of data in parallel.
For more information on how to use it, see the dedicated experimental feature discussion.

🪲 Bug fixes

⚠️ [Breaking - Security] Redact Authorization header in webhooks by @​dureuill in #​5968

The value of the Authorization header is now redacted when getting webhook, getting webhooks, or in the object returned when posting a new webhook or deleting a webhook.

  • Impact on Cloud: Similarly to embedder API, the UI should make sure to never send the Authorization header back after it has been redacted
  • Technically a breaking change, as users could previously get the key value back when getting the webhook, and that will no longer be possible
🚰 Fix the LMDB fork memory leak by @​Kerollmops in #​5967

This bug was causing crashes in the recent indexer optimizations. If you deactivated these optimizations by setting the following environment variables:

MEILI_EXPERIMENTAL_NO_EDITION_2024_FOR_PREFIX_POST_PROCESSING=true
MEILI_EXPERIMENTAL_NO_EDITION_2024_FOR_FACET_POST_PROCESSING=true

You can now safely reactivate them without experiencing memory leaks.

🇩🇪 Hotfix German word segmentation by @​ManyTheFish in meilisearch/charabia#360

German word segmentation relies on a word dictionary to segment words, but if a word is not part of the dictionary, it is cut into bigrams. The segmenter will now skip segmenting unknown words:

Source: "Feuchteschutz"
Before: ["Fe" "uc" "ht" "es, "ch", "utz"]
After:  ["Feuchteschutz"]

Source: "insgesamt"
Before: ["in" "sg" "es" "amt"]
After:  ["insgesamt"]

If you have a Meilisearch database containing German words, you must reindex your data manually.

🇨🇳 Prevent splitting of numbers and English words in Chinese text segmentation by @​JinheLin in meilisearch/charabia#354

It’s very common for Chinese, numbers, and English to appear together in the same sentence.
We now ensure that numbers and English are not segmented differently between segmenters:

Source: "我从2025年开始学习Rust语言。"
Before: ["我", "从", "2", "0", "2", "5", "年", "开始", "学习", "R", "u", "s", "t", "语言", "。"]
After:  ["我", "从", "2025", "年", "开始", "学习", "Rust", "语言", "。"]

If you have a Meilisearch database containing Chinese words, you must reindex your data manually.

🔩 Miscellaneous

Thanks to @​JinheLin, @​dureuill, @​Kerollmops, and @​ManyTheFish for their contribution! 🎉

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:


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 2 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 18 times, most recently from f157146 to 7a2d8b0 Compare October 30, 2025 07:06
@renovate renovate bot force-pushed the renovate/getmeili-meilisearch-1.x branch 6 times, most recently from e5a7a7d to a6c1284 Compare November 5, 2025 04:01
@renovate renovate bot force-pushed the renovate/getmeili-meilisearch-1.x branch from a6c1284 to da8076c Compare November 11, 2025 03:14
@renovate renovate bot changed the title Update getmeili/meilisearch Docker tag to v1.24.0 Update getmeili/meilisearch Docker tag to v1.25.0 Nov 11, 2025
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.

1 participant