Update getmeili/meilisearch Docker tag to v1.50.0 #1

Open
Renovate wants to merge 1 commit from renovate/getmeili-meilisearch-1.x into main
Collaborator

This PR contains the following updates:

Package Update Change
getmeili/meilisearch minor v1.43.1v1.50.0

Release Notes

meilisearch/meilisearch (getmeili/meilisearch)

v1.50.0: 🐐

Compare Source

Meilisearch v1.50 revamps the Dynamic Search Rules, adds support for federated document fetch in sharded configurations, among other improvements

Breaking changes

This release introduces breaking changes for users using some experimental features

dynamicSearchRules experimental feature
Request type changes
  1. priority has been replaced with precedence, which better reflects the behavior (lower precedence means the rule is applied first)
  2. conditions has been modified from an array to an object with two fields: "query" of type QueryCondition and "time" of time TimeCondition
  3. New type QueryCondition that contains the fields isEmpty (as previously) and words instead of contains (same type)
  4. It is now possible to pass isEmpty: false with words in a QueryCondition. Passing isEmpty:true with words still results in a synchronous error.
  5. New type TimeCondition with fields start and end (unchanged semantics from previous type).
  6. When specifying the selector of an Action, it is now mandatory to specify an id. Previously, it was optional, but the action would never trigger.
  7. When listing rules with POST /dynamic-search-rules, filter.attributePatterns has been replaced with filter.query, an optional string that searches in rule description and conditions.query.words.
  8. When calling DELETE /dynamic-search-rules/{:ruleUid} or PATCH /dynamic-search-rules/{:ruleUid} in a sharded configuration, endpoint will not return a HTTP 400 error if called on a follower remote rather than on the leader.
Response changes
  1. PATCH /dynamic-search-rules/{:ruleUid} and DELETE /dynamic-search-rules/{:ruleUid} now register an asynchronous task..
  2. The response is modified to return the registered task instead of the modified dynamic search rule.
  3. HTTP 404 is no longer returned if the {:ruleUid} portion of the URL refers to a rule that doesn't exist. This is because rules are processed asynchronously, and is consistent with the behavior of DELETE /indexes/{:indexUid}/documents/{:docId} for {:docId}
network experimental feature

The default behavior for users using the network experimental feature with sharding configured (leader not null) will change on the following routes:

  • GET indexes/:uid/documents
  • GET indexes/:uid/documents/:document_id
  • POST indexes/:uid/documents/fetch

Meilisearch will now fetch the documents from all the shards and not only on the local machine when processing the request.
To keep the same behavior as before, users will have to set useNetwork to false when making their request.

🌈 Improvements

Scaling up the Dynamic Search Rules
  • Dynamic search rules scale up to 75K rules without any impact on the search
  • The API of Dynamic Search Rules has been simplified
    • It is harder to send conditions that will result in the rules never activating
  • This also unlocks future improvements such as filter activation conditions for search rules
Additions
  • Add a new DELETE /dynamic-search-rule route that deletes all the DSRs
  • Add the concept of "DSR fuel" that determines how much energy is spent resolving DSR during a search. The fuel is initialized with some default variables that can be overridden using environment variables:
    • MEILI_EXPERIMENTAL_DSR_FUEL_MAX_COUNTED_WORDS: max number of words considered inside of a search query for the purpose of finding conditions.query.words constraints. Defaults to 10, max value is 255
    • MEILI_EXPERIMENTAL_DSR_FUEL_MAX_ACTIVE_RULES: max number of active rules whose actions are evaluated. Defaults to 1000, max value is 4294967
    • MEILI_EXPERIMENTAL_DSR_FUEL_MAX_PIN_ACTIONS: max number of pin actions that are applied. Defaults to 100, max value is 4294967
    • MEILI_EXPERIMENTAL_DSR_FUEL_WORD_FUEL: max number of constraint combinations that are evaluated for the purpose of finding conditions.query.words constraints. Defaults to 4096, max value is 4294967

By @​dureuill in #​6484 and #​6506

Behavior changes
  • The conditions.query.words behaves differently from query.contains: previously, a rule would match if its conditions query.contains would be substrings of q in the search query in the sense of str::contains. Now, a rule matches if all the words in conditions.query.words appear in q (after normalization). For q = hero super, query.contains = super hero would not match, whereas conditions.query.words = super hero does now match. This behavior is more in line with regular search, and allows improving performance.
  • Dynamic search rules are now replicated from the leader to its follower, when in a sharded configuration
Federated document fetch routes

GET indexes/:uid/documents, GET indexes/:uid/documents/:document_id and POST indexes/:uid/documents/fetch will now fetch the documents from all the shards in the configured network.

Moreover, a new useNetwork parameter is available to activate or deactivate the usage of the network.

By @​ManyTheFish in #​6495

Support partial wildcards when requesting facets

The facets parameter in search and federated search now supports more wildcards. Previously, only the single wildcard "*" was supported, requesting all filterable fields.

Now, patterns containing * are supported with the same matching rules as in filterableAttributes.attributePatterns and localizedAttributes.attributePatterns, such as dogs.*, which will add to the facet distribution all filterable fields that match the pattern (such as dogs.intel, dogs.kefir, etc.).

By @​Kerollmops in #​6497

🦋 Fixes

Fix migration from v1.48 and earlier

Migration via --experimental-dumpless-upgrade would fail in some cases in v1.49, when trying to migrate synonyms that contained no words (empty synonyms, or containing only separator tokens such as &).

Such synonyms are now ignored during migration, avoiding the issue.

By @​Kerollmops in #​6501

Fix filter memory consumption in some cases

In some conditions, the memory consumption of filters would increase quadratically with the length of the filter. This is now resolved for these cases.

By @​ManyTheFish in #​6509

No longer reject some correctly-escaped filters

Fix a bug where some filters containing escaped characters (such as \) would cause search requests to fail with invalid_search_filter

By @​dureuill in #​6499

More fault-tolerant S3 snapshots

Potentially fix an issue when sending a request to AWS S3 to create a new multipart upload, ensuring we resend the request if it fails.

By @​Kerollmops in #​6494

🔩 Miscellaneous changes

Full Changelog: https://github.com/meilisearch/meilisearch/compare/v1.49.0...v1.50.0

v1.49.0: 🪺

Compare Source

Enhancement
  • Improve the synonyms storage by @​Kerollmops in #​6466
    We improve synonyms' performance by changing how we store and retrieve them during query processing. Users may have experienced performance issues when the number of synonyms in an index was high, resulting in a significant impact on search performance. The Meilisearch support team advised moving the settings and synonyms-as-keywords to the dedicated documents. This is no longer an issue; synonyms are loaded lazily, only when a word matches a synonym. You can see performance improvements of up to 13x, depending on the number of synonyms.
🔩 Miscellaneous

v1.48.3: v1.48.3 🫎

Compare Source

🪲 Bug fixes

  • Fix a rare S3 snapshots bug by @​Kerollmops in #​6472

    We fixed a rare bug that could appear when using the S3 snapshot system. The bug is a race condition that occurs when we try to recycle internal buffers to reduce memory usage, which can cause an internal error and abort the snapshot upload.

  • Avoid remote search to return the same document twice by @​ManyTheFish in #​6473

    When using the remote federated search, Meilisearch was returning the same document twice from different machines. This was due to an internal filter that was not forwarded properly to the remote instances.

🔩 Miscellaneous

New Contributors

Thanks to @​0xfandom, who made his first contribution in #​6468 🎉

Full Changelog: https://github.com/meilisearch/meilisearch/compare/v1.48.2...v1.48.3

v1.48.2: 🫎

Compare Source

Meilisearch v1.48.2 and Meilisearch v1.47.1 address CVE-2026-57823 and CVE-2026-57824.
We recommend updating if you are in one of the following situations:

  1. You have API keys where indexes is not ["*"] and where actions contains more permissions than: ["search", "documents.*", "indexes.*", "tasks.cancel", "tasks.delete", "tasks.get", "settings.*", "stats.*", "fields.post"]
  2. You have search tenant tokens and either an embedder or a chat workspace
  • We recommend that users of Meilisearch v1.48 update to Meilisearch v1.48.2
  • We recommend that users of Meilisearch v1.47 or lower update to Meilisearch v1.47.1

These versions both fix the following:

  1. CVE-2026-57824: Improper authentication leads to privilege escalation: an authenticated user with an index-scoped API and the appropriate set of actions could use global actions to read and write the global state of the Meilisearch instance. Possibly impacted users of Meilisearch Cloud were contacted ahead-of-time.
  2. CVE-2026-57823: Improper authentication leads to information disclosure: a user with a search tenant token could get some limited information about the existence of a document outside of the scope of the search rules attached to the tenant token, an indirect information about the content of the document.

We detected no trace of exploitation of these vulnerabilities.

We thank PuH4ck3rX for reporting these vulnerabilities ❤️

v1.48.1: 🫎

Compare Source

Revert #​6432 due to a dumpless upgrade bug report.

Full Changelog: https://github.com/meilisearch/meilisearch/compare/v1.48.0...v1.48.1

v1.48.0: 🫎

Compare Source

Enhancement

[Experimental] Render 🫎​ template route

by @​Mubelotix in #​5765

Introduces a new POST /render-template route that can be used to render any template or fragment on any input and associated renderRoute experimental feature that gates access to the route.

This route can be used to test document templates and fragments before and after having configured an embedder.

A body payload for the route is of the form:

{
  "template": /* templateTarget object */,
  "input": /* inputTarget object or null */
}

where template describes the template or fragment to render, and input describes what to use to render the template.

Upon calling this route, Meilisearch responds with:

{
  "template": "{{doc.text}}",
  "rendered": "template text after rendering using the input"
}

where template contains the unrendered base text of the document template, or the unrendered base JSON object of a fragment, and rendered contains the result of rendering the template of the chosen input.

If input is null in the request, then rendered is null in the response, and the route can be used solely to retrieve a template or fragment from the settings of an index.

Before calling the route

The API of this route is subject to change, so before calling this route, please enable the renderRoute experimental feature:

PATCH /experimental-features --json '{"renderRoute": true}'
Examples
  1. Rendering a document from an index on a document template from an embedder of that index
request
// POST /render-template

{
  "template": {
    "kind": "documentTemplate",
    "indexUid": "movies",
    "embedder": "myMoviesEmbedder"
  },
  "input": {
    "kind": "indexDocument",
    "indexUid": "movies",
    "id": "2"
}
response
{
  "template": "A movie titled {{doc.title}} whose description starts with {{doc.overview|truncatewords:10}}",
  "rendered": "A movie titled Ariel whose description starts with Taisto Kasurinen is a Finnish coal miner whose father has..."
}
  1. Rendering an inline document on a fragment from an embedder of an index
request
// POST /render-template

{
  "template": { 
    "kind": "indexingFragment", 
    "indexUid": "dogs", 
    "embedder": "multi",
    "fragment": "captionedImage" 
  },
  "input": { 
    "kind": "inlineDocument", 
    "inline": { // pass your document inline as a JSON object
      "kind": "dog",
      "name": "iko",
      "breed": "jack russell",
      "mime": "image/png",
      "image": "/9j/4AAQSk..."
    } 
  }
}

response
{
  "template": {
    "content": [
      {
        "type": "text",
        "text": "A picture of a {{doc.kind}} of breed {{doc.breed}}"
      },
      {
        "type": "image_base64",
        "image_base64": "data:{{doc.mime}};base64,{{doc.image}}"
      }
    ]
  },
  "rendered": {
    "content": [
      {
        "type": "text",
        "text": "A picture of a dog of breed jack russell"
      },
      {
        "type": "image_base64",
        "image_base64": "data:image/png;base64,/9j/4AAQSk..."
      }
    ]
  }
}
  1. Rendering a search query on a search fragment from a multimodal embedder of an index
request
// POST /render-template
{
  "template": { 
    "kind": "searchFragment", 
    "indexUid": "testIndex", 
    "embedder": "testEmbedder",
    "fragment": "justBreed"
  },
  "input": {
    "kind": "inlineSearch",
    "inline": { // pass the search query inline
      "q": "unused",
      "media": {
        "name": "iko",
        "breed": "jack russell"
      },
      "filter": "ignored"
    }
  }
}
response
    {
      "template": "It's a {{ media.breed }}",
      "rendered": "It's a jack russell"
    }
  1. Rendering an inline document on the document template from the chat settings of an index
request
// POST /render-template

{
  "template": {
    "kind": "chatDocumentTemplate",
    "indexUid": "movies"
	// no embedder to specify since chat document template is global to index
  },
  "input": {
    "kind": "indexDocument",
    "indexUid": "movies",
    "id": "2"
}
response
{
  "template": "{% for field in fields %}{% if field.is_searchable and field.value != nil %}{{ field.name }}: {{ field.value }}\n{% endif %}{% endfor %}",
  "rendered": "id: 2\ntitle: Ariel\noverview: Taisto Kasurinen is a Finnish coal miner whose father has just committed suicide and who is framed for a crime he did not commit. In jail, he starts to dream about leaving the country and starting a new life. He escapes from prison but things don't go as planned...\ngenres: DramaCrimeComedy\nposter: https://image.tmdb.org/t/p/w500/ojDg0PGvs6R9xYFodRct2kdI6wC.jpg\nrelease_date: 593395200\n"
}
  1. Rendering a document from an index on an inline document template
request
// POST /render-template

{
  "template": {
    "kind": "inlineDocumentTemplate",
    "inline": "You can pass templates inline as well: nice to test them! {{doc.id}}"
  },
  "input": {
    "kind": "indexDocument",
    "indexUid": "movies",
    "id": "2"
}
response
{
  "template": "You can pass templates inline as well: nice to test them! {{doc.id}}",
  "rendered": "You can pass templates inline as well: nice to test them! 2"
}
  1. Rendering an inline document on an inline indexing fragment
request
// POST /render-template

{
  "template": {
    "kind": "inlineFragment",
    "inline": {
      "json_maps": "supported for fragments",
      "any_string": "is in liquid format: {{doc.test}}"
    }
  },
  "input": {
     "kind": "inlineDocument",
    "inline": {
      "test": true
    }
  }
}
response
{
  "template": {
    "json_maps": "supported for fragments",
    "any_string": "is in liquid format: {{doc.test}}"
  },
  "rendered": {
    "json_maps": "supported for fragments",
    "any_string": "is in liquid format: true"
  }
}

[Experimental] Only support foreign filters on retrieval routes

by @​ManyTheFish in #​6446

Foreign filters are meant to be used in a retrieval context (search, get document...), but all the actions related to writing or modifying a document could have several unexpected behaviors if foreign filters are accepted.
We prefer forbidding the usage of this feature on the writing routes.

The following routes do not support Foreign-filter anymore:

Additional change: we now ensure that the experimental features are checked when parsing a filter

🪲 Bug fixes

🔒 Security

🔩 Miscellaneous

❤️ Thanks again to @​genisis0x and @​antcybersec

v1.47.1: 🦇

Compare Source

Meilisearch v1.48.2 and Meilisearch v1.47.1 address CVE-2026-57823 and CVE-2026-57824.
We recommend updating if you are in one of the following situations:

  1. You have API keys where indexes is not ["*"] and where actions contains more permissions than: ["search", "documents.*", "indexes.*", "tasks.cancel", "tasks.delete", "tasks.get", "settings.*", "stats.*", "fields.post"]
  2. You have search tenant tokens and either an embedder or a chat workspace
  • We recommend that users of Meilisearch v1.48 update to Meilisearch v1.48.2
  • We recommend that users of Meilisearch v1.47 or lower update to Meilisearch v1.47.1

These versions both fix the following:

  1. CVE-2026-57824: Improper authentication leads to privilege escalation: an authenticated user with an index-scoped API and the appropriate set of actions could use global actions to read and write the global state of the Meilisearch instance. Possibly impacted users of Meilisearch Cloud were contacted ahead-of-time.
  2. CVE-2026-57823: Improper authentication leads to information disclosure: a user with a search tenant token could get some limited information about the existence of a document outside of the scope of the search rules attached to the tenant token, an indirect information about the content of the document.

We detected no trace of exploitation of these vulnerabilities.

We thank PuH4ck3rX for reporting these vulnerabilities ❤️

v1.47.0: 🦇

Compare Source

🌈 Enhancements

We now support using the search personalization feature on federated search requests.

Like page/hitPerPage or limit/offset, the personalization option must be specified in the federation attribute to work properly.
Otherwise, an error will be returned reminding you to move the attribute in federation.

By @​ManyTheFish in #​6414

The new settings indexer is feature complete 🎉

  • We now better support the tokenizer-related settings
  • We improved the quality of the new settings indexer to enhance the engine's performance when changing the locales, the dictionary, synonyms, stop words, separator, and non-separator tokens.
  • This makes the new settings indexer feature-complete, meaning that, unless you set the MEILI_EXPERIMENTAL_NO_EDITION_2024_FOR_SETTINGS environment variable to true, all settings tasks can now be handled by the new settings indexer, bringing a better scaling behavior, much faster cancellation, and a more precise progress view.

By @​Kerollmops in #​6409

Observability improvements

We expose more Prometheus metrics to improve observability, specifically to show more metrics on document throughput and ease debugging.

By @​Kerollmops in #​6430

🦋 Fixes

  • Putting attributeRank/ wordPosition before words in the rankingRules list will no longer remove hits from the response, by @​pjdurden in #​6437
  • Meilisearch will no longer ignore the searchCutoffMs in some conditions when embedding documents, by @​dureuill in #​6447
  • Meilisearch will no longer fail to proxy a search request with a filter containing a ' during remote federated search or useNetwork: true search requests, by @​dureuill in #​6445

🔒 Security

🔩 Misc. changes

Search implementation refactor

Refactor the search pipeline to mutualize the code.
The new implementation will always perform a federated search under the hood, and then the output will be transformed into the expected route's output.

Noticeable changes from the user perspective:

  • Some error messages have been modified
  • Small breaking change: a few error codes change, such as MultiSearch<Error> <--> Search<Error>

Other changes

New Contributors

Full Changelog: https://github.com/meilisearch/meilisearch/compare/v1.46.1...v1.47.0

v1.46.1: 🦆

Compare Source

Queue documents fetch routes

Add an experimental feature, queueDocumentsFetch, forcing the routes GET indexes/:uid/documents and POST indexes/:uid/documents/fetch to wait in the search queue if there is no available thread to process them.

v1.46.0: 🦆

Compare Source

This release introduces fixes for a regression in v1.45.0, where we were batching deletions by filter with other deletions or additions. It also enables the new settings indexer to support more parameters, making the engine faster to index documents when those settings are specified.

Enhancement
  • Support exact and disable on numbers in the new settings indexer by @​Kerollmops in #​6398
    Introduce support for exact words and disable-on-words parameters in the new settings indexer, making the engine more efficient when changing these settings.

  • Support computing prefixes in the new settings indexer by @​Kerollmops in #​6391
    Support for the prefix search settings in the new settings indexer, so that changing this parameter makes the engine more efficient.

🪲 Bug fixes
  • Better limit read bytes when creating the S3 multipart part by @​Kerollmops in #​6405
    This fixes an issue we had with the multipart part size by ensuring we never construct a part larger than the defined multipart part size. With this fix, we always create a multipart with the provided multipart part size, except for the last part. Thanks, @​vidit-virmani, for the help investigating the issue.

  • Batch of documentDeletionByFilter with documentAdditionOrUpdate by @​Kerollmops and @​ManyTheFish in #​6415
    Correctly implement the support for auto-batching deletion by filter with document replacement and updates. This fixes a regression introduced in v1.45.0.

  • Fix a panic with incomplete filters by @​Kerollmops in #​6421
    Fixes an internal panic when a filter is incomplete by returning an error instead.

🔒 Security
🔩 Miscellaneous

v1.45.2: 🦒

Compare Source

🪲 Bug Fixes
  • Fix internal vector stores quantization config desync by @​Kerollmops in #​6411
    We noticed issues when dumpless upgrading databases containing embedders from versions older than v1.33.1. This version fixes those databases by removing the corrupted embeddings from the impacted indexes.

Full Changelog: https://github.com/meilisearch/meilisearch/compare/v1.45.1...v1.45.2

v1.45.1: 🦒

Compare Source

🪲 Bug Fixes

Full Changelog: https://github.com/meilisearch/meilisearch/compare/v1.45.0...v1.45.1

v1.45.0: 🦒

Compare Source

Meilisearch v1.45.0 mainly improves indexing performance when changing settings and also improves document fetch performance.

Enhancement
  • Autobatch deletions by filter with additions by @​Kerollmops in #​6389
    While Meilisearch tries to improve indexing speed when users add documents and mix those additions with deletions via a filter, it is still an anti-pattern to interleave both. It is recommended to delete documents by ID whenever possible, as the engine is optimized to merge them, thereby drastically speeding up indexation.
  • Improve settings indexing performance & visibility
    We are introducing support for more settings in the nez settings indexer. If you find any bugs, please report them on GitHub. You can disable the new settings indexer by setting the environment variable like this: MEILI_EXPERIMENTAL_NO_EDITION_2024_FOR_SETTINGS=true or use the equivalent dedicated CLI parameter.
    • Support non-extracting parameters by @​Kerollmops in #​6393
      Changing one of the following settings is now directly handled by the new settings indexer: displayed fields, synonyms, the primary key, authorize typos, min word len one and two typos, max values per facet, sort facet values by, pagination max total hits, search cut off, chat, and foreign keys.
    • Support the global facet search by @​Kerollmops in #​6390
      Meilisearch can use the new settings indexer when the settings change the facet search root boolean parameter.
🪲 Bug Fixes
  • Fetching documents no longer blocks the actix worker @​dureuill in #​6402
  • Fix an internal error when changing the binary quantization by @​Kerollmops in #​6396
    We fixed an issue where users were changing the binary-quantized boolean in embedder configurations. The change corrupted the database, making it impossible to change the quantization in the future. Users had to create a binary-quantized embedder from scratch, or they could never change it again.
🔩 Miscellaneous

Full Changelog: https://github.com/meilisearch/meilisearch/compare/v1.44.0...v1.45.0

v1.44.0

Compare Source

Meilisearch v1.44.0 adds remote federated facet search, indexing performance improvements, and other improvements and bugfixes. It also contains a couple of breaking changes, detailed below.

Breaking changes

  • When using the network experimental feature, with sharding enabled (leader is not null in the network configuration), POST /indexes/{indexUid}/facet-search calls now default to a remote federated facet search, fetching and merging results from all shards in the network.
  • The timeout for calling an external REST embedder at search time is now tied to the searchCutOffMs defined in the index, rather than fixed.

🌈 Improvements

Meilisearch now has the ability to search across all shards of a network during facet search via the existing dedicated facet search route.

  • If you are using the network experimental feature and have a leader defined for your network, remote calls are now the default for calls to POST /indexes/{indexUid}/facet-search
  • The behavior can be controlled explicitly via the new useNetwork parameter of the facet search object.

By @​dureuill in https://github.com/meilisearch/meilisearch/pull/6375

Reduce memory usage of the indexing

Reduces allocated memory when computing prefixes and speeds up some operations to avoid unnecessary deserialization.

If you still see high memory usage while the engine is post-processing, we recommend using the --experimental-reduce-indexing-memory-usage option.

By @​Kerollmops in https://github.com/meilisearch/meilisearch/pull/6334

Improve GeoJSON indexing performance

This PR upgrades the cellulite library to a version that includes a GeoJSON indexing optimization. With this change, GeoJSON indexing avoids reprocessing documents that were already indexed in dense cells, and only handles newly added documents incrementally as they descend through the recursive cell tree.

By @​YoEight in https://github.com/meilisearch/meilisearch/pull/6374

Human-formatted sizes and detailed DB sizes in stats

Adds two new query parameters to GET /indexes/{indexUid}/stats and GET /stats:

  • showInternalDatabaseSizes: boolean, optional, defaults to false. When present, the index stat objects in responses of the stat routes now contain an additional internalDatabaseSizes key, whose value is a dictionary of the internal database names and their current size in the index, like in the stats object of a batch.
  • sizeFormat: human or raw: optional, defaults to raw. When present and set to human, then all database sizes in responses of the stat routes will be returned as a string containing an appropriate unit (MiB, GiB, etc). When missing or set to raw, then the current behavior of expressing the size in bytes as a number is retained.

Note for integrations: The keys in internalDatabaseSizes are subject to change and should not be exposed as a strongly typed object. This is the same as the existing internalDatabaseSizes in batch stats.

Adding showInternalDatabaseSizes to an index stats

// curl -X GET "http://localhost:7700/indexes/movies/stats?showInternalDatabaseSizes=true"
{
  "numberOfDocuments": 31944,
  "rawDocumentDbSize": 20594688,
  "avgDocumentSize": 636,
  "isIndexing": false,
  "internalDatabaseSizes": {
    "wordPairProximityDocids": 100827136,
    "documents": 20594688,
    "wordPositionDocids": 18694144,
    "wordFidDocids": 10715136,
    "wordPrefixPositionDocids": 10256384,
    "wordDocids": 9453568,
    "wordPrefixFidDocids": 4603904,
    "wordPrefixDocids": 3424256,
    "main": 1425408,
    "externalDocumentsIds": 999424,
    "fieldIdWordCountDocids": 245760,
    "exactWordPrefixDocids": 16384,
    "celluliteMetadata": 16384
  },
  "numberOfEmbeddings": 0,
  "numberOfEmbeddedDocuments": 0,
  "fieldDistribution": {
    "genres": 31944,
    "id": 31944,
    "overview": 31944,
    "poster": 31944,
    "release_date": 31944,
    "title": 31944
  }
}

Adding showInternalDatabaseSizes and sizeFormat=human to global stats

// curl -X GET "http://localhost:7700/stats?showInternalDatabaseSizes=true&sizeFormat=human"
{
  "databaseSize": "351.38 MiB",
  "usedDatabaseSize": "350.64 MiB",
  "lastUpdate": "2026-04-16T13:07:02.74243Z",
  "indexes": {
    "comics": {
      "numberOfDocuments": 31944,
      "rawDocumentDbSize": "23.14 MiB",
      "avgDocumentSize": "751 B",
      "isIndexing": false,
      "internalDatabaseSizes": {
        "wordPairProximityDocids": "98.06 MiB",
        "documents": "23.14 MiB",
        "wordPositionDocids": "17.22 MiB",
        "wordFidDocids": "10.36 MiB",
        "wordPrefixPositionDocids": "9.47 MiB",
        "wordDocids": "8.97 MiB",
        "wordPrefixFidDocids": "4.36 MiB",
        "wordPrefixDocids": "3.27 MiB",
        "main": "1.36 MiB",
        "externalDocumentsIds": "944 KiB",
        "fieldIdWordCountDocids": "240 KiB",
        "exactWordPrefixDocids": "16 KiB",
        "celluliteMetadata": "16 KiB"
      },
      "numberOfEmbeddings": 0,
      "numberOfEmbeddedDocuments": 0,
      "fieldDistribution": {
        "genres": 31944,
        "id": 31944,
        "overview": 31944,
        "poster": 31944,
        "release_date": 31944,
        "title": 31944
      }
    },
    "movies": {
      "numberOfDocuments": 31944,
      "rawDocumentDbSize": "19.64 MiB",
      "avgDocumentSize": "636 B",
      "isIndexing": false,
      "internalDatabaseSizes": {
        "wordPairProximityDocids": "96.16 MiB",
        "documents": "19.64 MiB",
        "wordPositionDocids": "17.83 MiB",
        "wordFidDocids": "10.22 MiB",
        "wordPrefixPositionDocids": "9.78 MiB",
        "wordDocids": "9.02 MiB",
        "wordPrefixFidDocids": "4.39 MiB",
        "wordPrefixDocids": "3.27 MiB",
        "main": "1.36 MiB",
        "externalDocumentsIds": "976 KiB",
        "fieldIdWordCountDocids": "240 KiB",
        "exactWordPrefixDocids": "16 KiB",
        "celluliteMetadata": "16 KiB"
      },
      "numberOfEmbeddings": 0,
      "numberOfEmbeddedDocuments": 0,
      "fieldDistribution": {
        "genres": 31944,
        "id": 31944,
        "overview": 31944,
        "poster": 31944,
        "release_date": 31944,
        "title": 31944
      }
    }
  }
}

The call without any parameters is the same as in previous versions.

// curl -X GET "http://localhost:7700/stats"
{
  "databaseSize": 368443392,
  "usedDatabaseSize": 367673344,
  "lastUpdate": "2026-04-16T13:07:02.74243Z",
  "indexes": {
    "comics": {
      "numberOfDocuments": 31944,
      "rawDocumentDbSize": 24264704,
      "avgDocumentSize": 751,
      "isIndexing": false,
      "numberOfEmbeddings": 0,
      "numberOfEmbeddedDocuments": 0,
      "fieldDistribution": {
        "genres": 31944,
        "id": 31944,
        "overview": 31944,
        "poster": 31944,
        "release_date": 31944,
        "title": 31944
      }
    },
    "movies": {
      "numberOfDocuments": 31944,
      "rawDocumentDbSize": 20594688,
      "avgDocumentSize": 636,
      "isIndexing": false,
      "numberOfEmbeddings": 0,
      "numberOfEmbeddedDocuments": 0,
      "fieldDistribution": {
        "genres": 31944,
        "id": 31944,
        "overview": 31944,
        "poster": 31944,
        "release_date": 31944,
        "title": 31944
      }
    }
  }
}

By @​dureuill in https://github.com/meilisearch/meilisearch/pull/6338

🦋 Fixes

🔩 Miscellaneous changes

New Contributors

Full Changelog: https://github.com/meilisearch/meilisearch/compare/v1.43.1...v1.44.0


Configuration

📅 Schedule: (in timezone Europe/Berlin)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, 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 has been generated by Mend Renovate.

This PR contains the following updates: | Package | Update | Change | |---|---|---| | [getmeili/meilisearch](https://github.com/meilisearch/meilisearch) | minor | `v1.43.1` → `v1.50.0` | --- ### Release Notes <details> <summary>meilisearch/meilisearch (getmeili/meilisearch)</summary> ### [`v1.50.0`](https://github.com/meilisearch/meilisearch/releases/tag/v1.50.0): 🐐 [Compare Source](https://github.com/meilisearch/meilisearch/compare/v1.49.0...v1.50.0) Meilisearch v1.50 revamps the [Dynamic Search Rules](https://www.meilisearch.com/docs/capabilities/search_rules/overview), adds support for federated document fetch in sharded configurations, among other improvements #### Breaking changes This release introduces breaking changes for users using some experimental features ##### `dynamicSearchRules` experimental feature ##### Request type changes 1. `priority` has been replaced with `precedence`, which better reflects the behavior (lower precedence means the rule is applied first) 2. `conditions` has been modified from an array to an object with two fields: "query" of type `QueryCondition` and "time" of time `TimeCondition` 3. New type `QueryCondition` that contains the fields `isEmpty` (as previously) and `words` instead of `contains` (same type) 4. It is now possible to pass `isEmpty: false` with `words` in a `QueryCondition`. Passing `isEmpty:true` with `words` still results in a synchronous error. 5. New type `TimeCondition` with fields `start` and `end` (unchanged semantics from previous type). 6. When specifying the `selector` of an `Action`, it is now mandatory to specify an `id`. Previously, it was optional, but the action would never trigger. 7. When listing rules with `POST /dynamic-search-rules`, `filter.attributePatterns` has been replaced with `filter.query`, an optional string that searches in rule `description` and `conditions.query.words`. 8. When calling `DELETE /dynamic-search-rules/{:ruleUid}` or `PATCH /dynamic-search-rules/{:ruleUid}` in a sharded configuration, endpoint will not return a HTTP 400 error if called on a follower remote rather than on the leader. ##### Response changes 1. `PATCH /dynamic-search-rules/{:ruleUid}` and `DELETE /dynamic-search-rules/{:ruleUid}` now register an asynchronous task.. 2. The response is modified to return the registered task instead of the modified dynamic search rule. 3. HTTP 404 is no longer returned if the `{:ruleUid}` portion of the URL refers to a rule that doesn't exist. This is because rules are processed asynchronously, and is consistent with the behavior of `DELETE /indexes/{:indexUid}/documents/{:docId}` for `{:docId}` ##### `network` experimental feature The default behavior for users using the network experimental feature with sharding configured (`leader` not `null`) will change on the following routes: - **GET** `indexes/:uid/documents` - **GET** `indexes/:uid/documents/:document_id` - **POST** `indexes/:uid/documents/fetch` Meilisearch will now fetch the documents from all the shards and not only on the local machine when processing the request. To keep the same behavior as before, users will have to set `useNetwork` to `false` when making their request. #### 🌈 Improvements ##### Scaling up the Dynamic Search Rules - Dynamic search rules scale up to 75K rules without any impact on the search - The API of Dynamic Search Rules has been simplified - It is harder to send conditions that will result in the rules never activating - This also unlocks future improvements such as filter activation conditions for search rules ##### Additions - Add a new `DELETE /dynamic-search-rule` route that deletes all the DSRs - Add the concept of "DSR fuel" that determines how much energy is spent resolving DSR during a search. The fuel is initialized with some default variables that can be overridden using environment variables: - `MEILI_EXPERIMENTAL_DSR_FUEL_MAX_COUNTED_WORDS`: max number of words considered inside of a search query for the purpose of finding `conditions.query.words` constraints. Defaults to 10, max value is 255 - `MEILI_EXPERIMENTAL_DSR_FUEL_MAX_ACTIVE_RULES`: max number of active rules whose actions are evaluated. Defaults to 1000, max value is [`4294967`](https://github.com/meilisearch/meilisearch/commit/4294967295) - `MEILI_EXPERIMENTAL_DSR_FUEL_MAX_PIN_ACTIONS`: max number of pin actions that are applied. Defaults to 100, max value is [`4294967`](https://github.com/meilisearch/meilisearch/commit/4294967295) - `MEILI_EXPERIMENTAL_DSR_FUEL_WORD_FUEL`: max number of constraint combinations that are evaluated for the purpose of finding `conditions.query.words` constraints. Defaults to 4096, max value is [`4294967`](https://github.com/meilisearch/meilisearch/commit/4294967295) By [@&#8203;dureuill](https://github.com/dureuill) in [#&#8203;6484](https://github.com/meilisearch/meilisearch/pull/6484) and [#&#8203;6506](https://github.com/meilisearch/meilisearch/pull/6506) ##### Behavior changes - The `conditions.query.words` behaves differently from `query.contains`: previously, a rule would match if its conditions `query.contains` would be substrings of `q` in the search query in the sense of [`str::contains`](https://doc.rust-lang.org/std/primitive.str.html#method.contains). Now, a rule matches if all the words in `conditions.query.words` appear in `q` (after normalization). For `q = hero super`, `query.contains = super hero` would **not** match, whereas `conditions.query.words = super hero` does now match. This behavior is more in line with regular search, and allows improving performance. - Dynamic search rules are now replicated from the leader to its follower, when in a sharded configuration ##### Federated document fetch routes **GET** `indexes/:uid/documents`, **GET** `indexes/:uid/documents/:document_id` and **POST** `indexes/:uid/documents/fetch` will now fetch the documents from all the shards in the configured network. Moreover, a new `useNetwork` parameter is available to activate or deactivate the usage of the network. By [@&#8203;ManyTheFish](https://github.com/ManyTheFish) in [#&#8203;6495](https://github.com/meilisearch/meilisearch/pull/6495) ##### Support partial wildcards when requesting facets The `facets` parameter in search and federated search now supports more wildcards. Previously, only the single wildcard `"*"` was supported, requesting all filterable fields. Now, patterns *containing* `*` are supported with the same matching rules as in `filterableAttributes.attributePatterns` and `localizedAttributes.attributePatterns`, such as `dogs.*`, which will add to the facet distribution all filterable fields that match the pattern (such as `dogs.intel`, `dogs.kefir`, etc.). By [@&#8203;Kerollmops](https://github.com/Kerollmops) in [#&#8203;6497](https://github.com/meilisearch/meilisearch/pull/6497) #### 🦋 Fixes ##### Fix migration from v1.48 and earlier Migration via `--experimental-dumpless-upgrade` would fail in some cases in v1.49, when trying to migrate synonyms that contained no words (empty synonyms, or containing only separator tokens such as `&`). Such synonyms are now ignored during migration, avoiding the issue. By [@&#8203;Kerollmops](https://github.com/Kerollmops) in [#&#8203;6501](https://github.com/meilisearch/meilisearch/pull/6501) ##### Fix filter memory consumption in some cases In some conditions, the memory consumption of filters would increase quadratically with the length of the filter. This is now resolved for these cases. By [@&#8203;ManyTheFish](https://github.com/ManyTheFish) in [#&#8203;6509](https://github.com/meilisearch/meilisearch/pull/6509) ##### No longer reject some correctly-escaped filters Fix a bug where some filters containing escaped characters (such as \\) would cause search requests to fail with invalid\_search\_filter By [@&#8203;dureuill](https://github.com/dureuill) in [#&#8203;6499](https://github.com/meilisearch/meilisearch/pull/6499) ##### More fault-tolerant S3 snapshots *Potentially* fix an issue when sending a request to AWS S3 to create a new multipart upload, ensuring we resend the request if it fails. By [@&#8203;Kerollmops](https://github.com/Kerollmops) in [#&#8203;6494](https://github.com/meilisearch/meilisearch/pull/6494) #### 🔩 Miscellaneous changes - Add missing route descriptions for documentation by [@&#8203;curquiza](https://github.com/curquiza) in [#&#8203;6500](https://github.com/meilisearch/meilisearch/pull/6500) - Make the prototype docs clearer by [@&#8203;curquiza](https://github.com/curquiza) in [#&#8203;6503](https://github.com/meilisearch/meilisearch/pull/6503) - Improve maintenability by simplifying partitioning step by [@&#8203;ManyTheFish](https://github.com/ManyTheFish) in [#&#8203;6511](https://github.com/meilisearch/meilisearch/pull/6511) - Fix frequently failing tests on Windows by [@&#8203;dureuill](https://github.com/dureuill) in [#&#8203;6520](https://github.com/meilisearch/meilisearch/pull/6520) **Full Changelog**: <https://github.com/meilisearch/meilisearch/compare/v1.49.0...v1.50.0> ### [`v1.49.0`](https://github.com/meilisearch/meilisearch/releases/tag/v1.49.0): 🪺 [Compare Source](https://github.com/meilisearch/meilisearch/compare/v1.48.3...v1.49.0) ##### ✨ Enhancement - Improve the synonyms storage by [@&#8203;Kerollmops](https://github.com/Kerollmops) in [#&#8203;6466](https://github.com/meilisearch/meilisearch/pull/6466) We improve synonyms' performance by changing how we store and retrieve them during query processing. Users may have experienced performance issues when the number of synonyms in an index was high, resulting in a significant impact on search performance. The Meilisearch support team advised moving the settings and synonyms-as-keywords to the dedicated documents. This is no longer an issue; synonyms are loaded lazily, only when a word matches a synonym. You can see performance improvements of up to 13x, depending on the number of synonyms. ##### 🔩 Miscellaneous - Fix the workflow after broken ranking scores by [@&#8203;Kerollmops](https://github.com/Kerollmops) in [#&#8203;6470](https://github.com/meilisearch/meilisearch/pull/6470) - Make OpenAPI rule less strict for routes returning 202 by [@&#8203;curquiza](https://github.com/curquiza) in [#&#8203;6488](https://github.com/meilisearch/meilisearch/pull/6488) ### [`v1.48.3`](https://github.com/meilisearch/meilisearch/releases/tag/v1.48.3): v1.48.3 🫎​ [Compare Source](https://github.com/meilisearch/meilisearch/compare/v1.48.2...v1.48.3) ### 🪲 Bug fixes - Fix a rare S3 snapshots bug by [@&#8203;Kerollmops](https://github.com/Kerollmops) in [#&#8203;6472](https://github.com/meilisearch/meilisearch/pull/6472) We fixed a rare bug that could appear when using the S3 snapshot system. The bug is a race condition that occurs when we try to recycle internal buffers to reduce memory usage, which can cause an internal error and abort the snapshot upload. - Avoid remote search to return the same document twice by [@&#8203;ManyTheFish](https://github.com/ManyTheFish) in [#&#8203;6473](https://github.com/meilisearch/meilisearch/pull/6473) When using the remote federated search, Meilisearch was returning the same document twice from different machines. This was due to an internal filter that was not forwarded properly to the remote instances. ### **🔩 Miscellaneous** - Add missing searchFilterParam to GET chat workspace settings response by [@&#8203;CaroFG](https://github.com/CaroFG) in [#&#8203;6475](https://github.com/meilisearch/meilisearch/pull/6475) - Split unit tests into separate files (one commit per file) by [@&#8203;0xfandom](https://github.com/0xfandom) in [#&#8203;6468](https://github.com/meilisearch/meilisearch/pull/6468) - Add missing information from pre-openAPI-migration by [@&#8203;curquiza](https://github.com/curquiza) in [#&#8203;6467](https://github.com/meilisearch/meilisearch/pull/6467) #### New Contributors Thanks to [@&#8203;0xfandom](https://github.com/0xfandom), who made his first contribution in [#&#8203;6468](https://github.com/meilisearch/meilisearch/pull/6468) 🎉 **Full Changelog**: <https://github.com/meilisearch/meilisearch/compare/v1.48.2...v1.48.3> ### [`v1.48.2`](https://github.com/meilisearch/meilisearch/releases/tag/v1.48.2): 🫎 [Compare Source](https://github.com/meilisearch/meilisearch/compare/v1.48.1...v1.48.2) Meilisearch v1.48.2 and Meilisearch v1.47.1 address CVE-2026-57823 and CVE-2026-57824. We recommend updating if you are in one of the following situations: 1. You have API keys where `indexes` is *not* `["*"]` and where `actions` contains more permissions than: `["search", "documents.*", "indexes.*", "tasks.cancel", "tasks.delete", "tasks.get", "settings.*", "stats.*", "fields.post"]` 2. You have [search tenant tokens](https://www.meilisearch.com/docs/capabilities/security/overview) and either an [embedder](https://www.meilisearch.com/docs/getting_started/glossary#embedder) or a [chat workspace](https://www.meilisearch.com/docs/capabilities/conversational_search/how_to/configure_chat_workspace) - We recommend that users of Meilisearch v1.48 update to Meilisearch v1.48.2 - We recommend that users of Meilisearch v1.47 or lower update to Meilisearch v1.47.1 These versions both fix the following: 1. CVE-2026-57824: Improper authentication leads to privilege escalation: an authenticated user with an index-scoped API and the appropriate set of actions could use global actions to read and write the global state of the Meilisearch instance. Possibly impacted users of Meilisearch Cloud were contacted ahead-of-time. 2. CVE-2026-57823: Improper authentication leads to information disclosure: a user with a search tenant token could get some limited information about the existence of a document outside of the scope of the search rules attached to the tenant token, an indirect information about the content of the document. We detected no trace of exploitation of these vulnerabilities. We thank PuH4ck3rX for reporting these vulnerabilities :heart: ### [`v1.48.1`](https://github.com/meilisearch/meilisearch/releases/tag/v1.48.1): 🫎 [Compare Source](https://github.com/meilisearch/meilisearch/compare/v1.48.0...v1.48.1) Revert [#&#8203;6432](https://github.com/meilisearch/meilisearch/issues/6432) due to a dumpless upgrade bug report. **Full Changelog**: <https://github.com/meilisearch/meilisearch/compare/v1.48.0...v1.48.1> ### [`v1.48.0`](https://github.com/meilisearch/meilisearch/releases/tag/v1.48.0): 🫎​ [Compare Source](https://github.com/meilisearch/meilisearch/compare/v1.47.1...v1.48.0) ### **✨ Enhancement** #### \[Experimental] Render 🫎​ template route > by [@&#8203;Mubelotix](https://github.com/Mubelotix) in [#&#8203;5765](https://github.com/meilisearch/meilisearch/pull/5765) Introduces a new `POST /render-template` route that can be used to render any template or fragment on any input and associated [`renderRoute` experimental feature](https://github.com/orgs/meilisearch/discussions/888) that gates access to the route. This route can be used to test document templates and fragments before and after having configured an embedder. A body payload for the route is of the form: ```jsonc { "template": /* templateTarget object */, "input": /* inputTarget object or null */ } ``` where `template` describes the template or fragment to render, and `input` describes what to use to render the template. Upon calling this route, Meilisearch responds with: ```jsonc { "template": "{{doc.text}}", "rendered": "template text after rendering using the input" } ``` where `template` contains the **un**rendered base text of the document template, or the **un**rendered base JSON object of a fragment, and `rendered` contains the result of rendering the template of the chosen input. If `input` is `null` in the request, then `rendered` is `null` in the response, and the route can be used solely to retrieve a template or fragment from the settings of an index. ##### Before calling the route The API of this route is subject to change, so before calling this route, please enable the `renderRoute` experimental feature: ```sh PATCH /experimental-features --json '{"renderRoute": true}' ``` ##### Examples 1. Rendering a document from an index on a document template from an embedder of that index <details><summary>request</summary> ```jsonc // POST /render-template { "template": { "kind": "documentTemplate", "indexUid": "movies", "embedder": "myMoviesEmbedder" }, "input": { "kind": "indexDocument", "indexUid": "movies", "id": "2" } ``` </details> <details><summary>response</summary> ```jsonc { "template": "A movie titled {{doc.title}} whose description starts with {{doc.overview|truncatewords:10}}", "rendered": "A movie titled Ariel whose description starts with Taisto Kasurinen is a Finnish coal miner whose father has..." } ``` </details> 2. Rendering an inline document on a fragment from an embedder of an index <details><summary>request</summary> ```jsonc // POST /render-template { "template": { "kind": "indexingFragment", "indexUid": "dogs", "embedder": "multi", "fragment": "captionedImage" }, "input": { "kind": "inlineDocument", "inline": { // pass your document inline as a JSON object "kind": "dog", "name": "iko", "breed": "jack russell", "mime": "image/png", "image": "/9j/4AAQSk..." } } } ``` </details> <details><summary>response</summary> ```jsonc { "template": { "content": [ { "type": "text", "text": "A picture of a {{doc.kind}} of breed {{doc.breed}}" }, { "type": "image_base64", "image_base64": "data:{{doc.mime}};base64,{{doc.image}}" } ] }, "rendered": { "content": [ { "type": "text", "text": "A picture of a dog of breed jack russell" }, { "type": "image_base64", "image_base64": "data:image/png;base64,/9j/4AAQSk..." } ] } } ``` </details> 3. Rendering a search query on a search fragment from a multimodal embedder of an index <details><summary>request</summary> ```jsonc // POST /render-template { "template": { "kind": "searchFragment", "indexUid": "testIndex", "embedder": "testEmbedder", "fragment": "justBreed" }, "input": { "kind": "inlineSearch", "inline": { // pass the search query inline "q": "unused", "media": { "name": "iko", "breed": "jack russell" }, "filter": "ignored" } } } ``` </details> <details><summary>response</summary> ```jsonc { "template": "It's a {{ media.breed }}", "rendered": "It's a jack russell" } ``` </details> 4. Rendering an inline document on the document template from the chat settings of an index <details><summary>request</summary> ```jsonc // POST /render-template { "template": { "kind": "chatDocumentTemplate", "indexUid": "movies" // no embedder to specify since chat document template is global to index }, "input": { "kind": "indexDocument", "indexUid": "movies", "id": "2" } ``` </details> <details><summary>response</summary> ```jsonc { "template": "{% for field in fields %}{% if field.is_searchable and field.value != nil %}{{ field.name }}: {{ field.value }}\n{% endif %}{% endfor %}", "rendered": "id: 2\ntitle: Ariel\noverview: Taisto Kasurinen is a Finnish coal miner whose father has just committed suicide and who is framed for a crime he did not commit. In jail, he starts to dream about leaving the country and starting a new life. He escapes from prison but things don't go as planned...\ngenres: DramaCrimeComedy\nposter: https://image.tmdb.org/t/p/w500/ojDg0PGvs6R9xYFodRct2kdI6wC.jpg\nrelease_date: 593395200\n" } ``` </details> 5. Rendering a document from an index on an inline document template <details><summary>request</summary> ```jsonc // POST /render-template { "template": { "kind": "inlineDocumentTemplate", "inline": "You can pass templates inline as well: nice to test them! {{doc.id}}" }, "input": { "kind": "indexDocument", "indexUid": "movies", "id": "2" } ``` </details> <details><summary>response</summary> ```jsonc { "template": "You can pass templates inline as well: nice to test them! {{doc.id}}", "rendered": "You can pass templates inline as well: nice to test them! 2" } ``` </details> 6. Rendering an inline document on an inline indexing fragment <details><summary>request</summary> ```jsonc // POST /render-template { "template": { "kind": "inlineFragment", "inline": { "json_maps": "supported for fragments", "any_string": "is in liquid format: {{doc.test}}" } }, "input": { "kind": "inlineDocument", "inline": { "test": true } } } ``` </details> <details><summary>response</summary> ```jsonc { "template": { "json_maps": "supported for fragments", "any_string": "is in liquid format: {{doc.test}}" }, "rendered": { "json_maps": "supported for fragments", "any_string": "is in liquid format: true" } } ``` </details> #### [Experimental] Only support foreign filters on retrieval routes > by [@&#8203;ManyTheFish](https://github.com/ManyTheFish) in [#&#8203;6446](https://github.com/meilisearch/meilisearch/pull/6446) Foreign filters are meant to be used in a retrieval context (search, get document...), but all the actions related to writing or modifying a document could have several unexpected behaviors if foreign filters are accepted. We prefer forbidding the usage of this feature on the writing routes. The following routes do not support Foreign-filter anymore: - [Edit documents by function](https://www.meilisearch.com/docs/reference/api/documents/edit-documents-by-function): POST `/indexes/{index_uid}/documents/edit` - [Delete documents by filter](https://www.meilisearch.com/docs/reference/api/documents/delete-documents-by-filter): POST `/indexes/{index_uid}/documents/delete` - [Export to a remote Meilisearch](https://www.meilisearch.com/docs/reference/api/export/export-to-a-remote-meilisearch): POST `/export` > Additional change: we now ensure that the experimental features are checked when parsing a filter ### 🪲 Bug fixes - Support prefix search on words registered in the disableOnAttributes and disableOnNumbers settings by [@&#8203;antcybersec](https://github.com/antcybersec) in [#&#8203;6432](https://github.com/meilisearch/meilisearch/pull/6432) - Add missing logs in search performance details [@&#8203;ManyTheFish](https://github.com/ManyTheFish) in [#&#8203;6457](https://github.com/meilisearch/meilisearch/pull/6457) - Ensure the index map budget is a multiplier of the OS page size by [@&#8203;genisis0x](https://github.com/genisis0x) in [#&#8203;6454](https://github.com/meilisearch/meilisearch/pull/6454) ### 🔒 Security - Reduce risk of vulnerability exploits on GHA by [@&#8203;curquiza](https://github.com/curquiza) in [#&#8203;6451](https://github.com/meilisearch/meilisearch/pull/6451) ### **🔩 Miscellaneous** - Replace the `queueDocumentsFetch` experimental feature with `disableDocumentsFetchQueue` converting the feature from an opt-in to an opt-out By [@&#8203;ManyTheFish](https://github.com/ManyTheFish) in [#&#8203;6456](https://github.com/meilisearch/meilisearch/pull/6456) - Bump and removes unused dependencies by [@&#8203;Kerollmops](https://github.com/Kerollmops) in [#&#8203;6444](https://github.com/meilisearch/meilisearch/pull/6444) - Fix Ollama embeddings changes to fix CI tests by [@&#8203;Kerollmops](https://github.com/Kerollmops) in [#&#8203;6450](https://github.com/meilisearch/meilisearch/pull/6450) ❤️ Thanks again to [@&#8203;genisis0x](https://github.com/genisis0x) and [@&#8203;antcybersec](https://github.com/antcybersec) ### [`v1.47.1`](https://github.com/meilisearch/meilisearch/releases/tag/v1.47.1): 🦇 [Compare Source](https://github.com/meilisearch/meilisearch/compare/v1.47.0...v1.47.1) Meilisearch v1.48.2 and Meilisearch v1.47.1 address CVE-2026-57823 and CVE-2026-57824. We recommend updating if you are in one of the following situations: 1. You have API keys where `indexes` is *not* `["*"]` and where `actions` contains more permissions than: `["search", "documents.*", "indexes.*", "tasks.cancel", "tasks.delete", "tasks.get", "settings.*", "stats.*", "fields.post"]` 2. You have [search tenant tokens](https://www.meilisearch.com/docs/capabilities/security/overview) and either an [embedder](https://www.meilisearch.com/docs/getting_started/glossary#embedder) or a [chat workspace](https://www.meilisearch.com/docs/capabilities/conversational_search/how_to/configure_chat_workspace) - We recommend that users of Meilisearch v1.48 update to Meilisearch v1.48.2 - We recommend that users of Meilisearch v1.47 or lower update to Meilisearch v1.47.1 These versions both fix the following: 1. CVE-2026-57824: Improper authentication leads to privilege escalation: an authenticated user with an index-scoped API and the appropriate set of actions could use global actions to read and write the global state of the Meilisearch instance. Possibly impacted users of Meilisearch Cloud were contacted ahead-of-time. 2. CVE-2026-57823: Improper authentication leads to information disclosure: a user with a search tenant token could get some limited information about the existence of a document outside of the scope of the search rules attached to the tenant token, an indirect information about the content of the document. We detected no trace of exploitation of these vulnerabilities. We thank PuH4ck3rX for reporting these vulnerabilities :heart: ### [`v1.47.0`](https://github.com/meilisearch/meilisearch/releases/tag/v1.47.0): 🦇 [Compare Source](https://github.com/meilisearch/meilisearch/compare/v1.46.1...v1.47.0) ### 🌈 Enhancements #### Search personalization on federated search We now support using the [search personalization feature](https://www.meilisearch.com/docs/capabilities/personalization/overview) on federated search requests. Like `page`/`hitPerPage` or `limit`/`offset`, the personalization option must be specified in the federation attribute to work properly. Otherwise, an error will be returned reminding you to move the attribute in federation. By [@&#8203;ManyTheFish](https://github.com/ManyTheFish) in [#&#8203;6414](https://github.com/meilisearch/meilisearch/pull/6414) #### The new settings indexer is feature complete 🎉 - We now better support the tokenizer-related settings - We improved the quality of the new settings indexer to enhance the engine's performance when changing the locales, the dictionary, synonyms, stop words, separator, and non-separator tokens. - This makes the new settings indexer feature-complete, meaning that, unless you set the `MEILI_EXPERIMENTAL_NO_EDITION_2024_FOR_SETTINGS` environment variable to `true`, all settings tasks can now be handled by the new settings indexer, bringing a better scaling behavior, much faster cancellation, and a more precise progress view. By [@&#8203;Kerollmops](https://github.com/Kerollmops) in [#&#8203;6409](https://github.com/meilisearch/meilisearch/pull/6409) #### Observability improvements We expose more Prometheus metrics to improve observability, specifically to show more metrics on document throughput and ease debugging. By [@&#8203;Kerollmops](https://github.com/Kerollmops) in [#&#8203;6430](https://github.com/meilisearch/meilisearch/pull/6430) ### 🦋 Fixes - Putting attributeRank/ wordPosition before words in the rankingRules list will no longer remove hits from the response, by [@&#8203;pjdurden](https://github.com/pjdurden) in [#&#8203;6437](https://github.com/meilisearch/meilisearch/pull/6437) - Meilisearch will no longer ignore the `searchCutoffMs` in some conditions when embedding documents, by [@&#8203;dureuill](https://github.com/dureuill) in [#&#8203;6447](https://github.com/meilisearch/meilisearch/pull/6447) - Meilisearch will no longer fail to proxy a search request with a filter containing a `'` during remote federated search or `useNetwork: true` search requests, by [@&#8203;dureuill](https://github.com/dureuill) in [#&#8203;6445](https://github.com/meilisearch/meilisearch/pull/6445) ### 🔒 Security - CI: Prevent shell injection in GitHub Actions release workflows by [@&#8203;curquiza](https://github.com/curquiza) in [#&#8203;6420](https://github.com/meilisearch/meilisearch/pull/6420) ### 🔩 Misc. changes #### Search implementation refactor Refactor the search pipeline to mutualize the code. The new implementation will always perform a federated search under the hood, and then the output will be transformed into the expected route's output. Noticeable changes from the user perspective: - Some error messages have been modified - Small breaking change: a few error codes change, such as `MultiSearch<Error>` <--> `Search<Error>` #### Other changes - Make it easier and less error-prone to declare a type that is used as a body parameter on a Meilisearch endpoint, by [@&#8203;dureuill](https://github.com/dureuill) in [#&#8203;6429](https://github.com/meilisearch/meilisearch/pull/6429) - Remove the now unused `vectorStoreBackend` setting from the settings, by [@&#8203;Kerollmops](https://github.com/Kerollmops) in [#&#8203;6399](https://github.com/meilisearch/meilisearch/pull/6399) - Replace custom hf-hub git dependency by the official one by [@&#8203;Kerollmops](https://github.com/Kerollmops) in [#&#8203;6442](https://github.com/meilisearch/meilisearch/pull/6442) - Update Python SDK test CI by [@&#8203;Strift](https://github.com/Strift) in [#&#8203;6439](https://github.com/meilisearch/meilisearch/pull/6439) - Refactor the code to use the `MustStopProcessing` type everywhere by [@&#8203;Kerollmops](https://github.com/Kerollmops) in [#&#8203;6423](https://github.com/meilisearch/meilisearch/pull/6423) #### New Contributors - [@&#8203;pjdurden](https://github.com/pjdurden) made their first contribution in [#&#8203;6437](https://github.com/meilisearch/meilisearch/pull/6437) **Full Changelog**: <https://github.com/meilisearch/meilisearch/compare/v1.46.1...v1.47.0> ### [`v1.46.1`](https://github.com/meilisearch/meilisearch/releases/tag/v1.46.1): 🦆 [Compare Source](https://github.com/meilisearch/meilisearch/compare/v1.46.0...v1.46.1) #### Queue documents fetch routes Add an experimental feature, `queueDocumentsFetch`, forcing the routes `GET indexes/:uid/documents` and `POST indexes/:uid/documents/fetch` to wait in the search queue if there is no available thread to process them. ### [`v1.46.0`](https://github.com/meilisearch/meilisearch/releases/tag/v1.46.0): 🦆 [Compare Source](https://github.com/meilisearch/meilisearch/compare/v1.45.2...v1.46.0) This release introduces fixes for a regression in v1.45.0, where we were batching deletions by filter with other deletions or additions. It also enables the new settings indexer to support more parameters, making the engine faster to index documents when those settings are specified. ##### ✨ Enhancement - Support exact and disable on numbers in the new settings indexer by [@&#8203;Kerollmops](https://github.com/Kerollmops) in [#&#8203;6398](https://github.com/meilisearch/meilisearch/pull/6398) Introduce support for exact words and disable-on-words parameters in the new settings indexer, making the engine more efficient when changing these settings. - Support computing prefixes in the new settings indexer by [@&#8203;Kerollmops](https://github.com/Kerollmops) in [#&#8203;6391](https://github.com/meilisearch/meilisearch/pull/6391) Support for the prefix search settings in the new settings indexer, so that changing this parameter makes the engine more efficient. ##### 🪲 Bug fixes - Better limit read bytes when creating the S3 multipart part by [@&#8203;Kerollmops](https://github.com/Kerollmops) in [#&#8203;6405](https://github.com/meilisearch/meilisearch/pull/6405) This fixes an issue we had with the multipart part size by ensuring we never construct a part larger than the defined multipart part size. With this fix, we always create a multipart with the provided multipart part size, except for the last part. Thanks, [@&#8203;vidit-virmani](https://github.com/vidit-virmani), for the help investigating the issue. - Batch of `documentDeletionByFilter` with `documentAdditionOrUpdate` by [@&#8203;Kerollmops](https://github.com/Kerollmops) and [@&#8203;ManyTheFish](https://github.com/ManyTheFish) in [#&#8203;6415](https://github.com/meilisearch/meilisearch/pull/6415) Correctly implement the support for auto-batching deletion by filter with document replacement and updates. This fixes a regression introduced in v1.45.0. - Fix a panic with incomplete filters by [@&#8203;Kerollmops](https://github.com/Kerollmops) in [#&#8203;6421](https://github.com/meilisearch/meilisearch/pull/6421) Fixes an internal panic when a filter is incomplete by returning an error instead. ##### 🔒 Security - Bump tar from 0.4.45 to 0.4.46 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;6418](https://github.com/meilisearch/meilisearch/pull/6418) ##### 🔩 Miscellaneous - OpenAPI CI: disable rule to avoid crash (workaround) by [@&#8203;curquiza](https://github.com/curquiza) in [#&#8203;6417](https://github.com/meilisearch/meilisearch/pull/6417) - Remove milli benchmarks by [@&#8203;Kerollmops](https://github.com/Kerollmops) in [#&#8203;6419](https://github.com/meilisearch/meilisearch/pull/6419) - Add precision in the index swap documentation by [@&#8203;ManyTheFish](https://github.com/ManyTheFish) in [#&#8203;6408](https://github.com/meilisearch/meilisearch/pull/6408) - Fix broken links in the documentation by [@&#8203;Kerollmops](https://github.com/Kerollmops) in [#&#8203;6406](https://github.com/meilisearch/meilisearch/pull/6406) ### [`v1.45.2`](https://github.com/meilisearch/meilisearch/releases/tag/v1.45.2): 🦒 [Compare Source](https://github.com/meilisearch/meilisearch/compare/v1.45.1...v1.45.2) ##### 🪲 Bug Fixes - Fix internal vector stores quantization config desync by [@&#8203;Kerollmops](https://github.com/Kerollmops) in [#&#8203;6411](https://github.com/meilisearch/meilisearch/pull/6411) We noticed issues when dumpless upgrading databases containing embedders from versions older than v1.33.1. This version fixes those databases by removing the corrupted embeddings from the impacted indexes. **Full Changelog**: <https://github.com/meilisearch/meilisearch/compare/v1.45.1...v1.45.2> ### [`v1.45.1`](https://github.com/meilisearch/meilisearch/releases/tag/v1.45.1): 🦒 [Compare Source](https://github.com/meilisearch/meilisearch/compare/v1.45.0...v1.45.1) ##### 🪲 Bug Fixes - Revert autobatch deletions by filter with additions by [@&#8203;kerollmops](https://github.com/kerollmops) in [#&#8203;6412](https://github.com/meilisearch/meilisearch/pull/6412) **Full Changelog**: <https://github.com/meilisearch/meilisearch/compare/v1.45.0...v1.45.1> ### [`v1.45.0`](https://github.com/meilisearch/meilisearch/releases/tag/v1.45.0): 🦒 [Compare Source](https://github.com/meilisearch/meilisearch/compare/v1.44.0...v1.45.0) Meilisearch v1.45.0 mainly improves indexing performance when changing settings and also improves document fetch performance. ##### ✨ Enhancement - **Autobatch deletions by filter with additions** by [@&#8203;Kerollmops](https://github.com/Kerollmops) in [#&#8203;6389](https://github.com/meilisearch/meilisearch/pull/6389) While Meilisearch tries to improve indexing speed when users add documents and mix those additions with deletions via a filter, it is still an anti-pattern to interleave both. It is recommended to delete documents by ID whenever possible, as the engine is optimized to merge them, thereby drastically speeding up indexation. - **Improve settings indexing performance & visibility** We are introducing support for more settings in the nez settings indexer. If you find any bugs, please report them on GitHub. You can disable the new settings indexer by setting the environment variable like this: `MEILI_EXPERIMENTAL_NO_EDITION_2024_FOR_SETTINGS=true` or use the equivalent dedicated CLI parameter. - **Support non-extracting parameters** by [@&#8203;Kerollmops](https://github.com/Kerollmops) in [#&#8203;6393](https://github.com/meilisearch/meilisearch/pull/6393) Changing one of the following settings is now directly handled by the new settings indexer: displayed fields, synonyms, the primary key, authorize typos, min word len one and two typos, max values per facet, sort facet values by, pagination max total hits, search cut off, chat, and foreign keys. - **Support the global facet search** by [@&#8203;Kerollmops](https://github.com/Kerollmops) in [#&#8203;6390](https://github.com/meilisearch/meilisearch/pull/6390) Meilisearch can use the new settings indexer when the settings change the facet search root boolean parameter. ##### 🪲 Bug Fixes - **Fetching documents no longer blocks the actix worker** [@&#8203;dureuill](https://github.com/dureuill) in [#&#8203;6402](https://github.com/meilisearch/meilisearch/pull/6402) - **Fix an internal error when changing the binary quantization** by [@&#8203;Kerollmops](https://github.com/Kerollmops) in [#&#8203;6396](https://github.com/meilisearch/meilisearch/pull/6396) We fixed an issue where users were changing the binary-quantized boolean in embedder configurations. The change corrupted the database, making it impossible to change the quantization in the future. Users had to create a binary-quantized embedder from scratch, or they could never change it again. ##### 🔩 Miscellaneous - Make timeout test less flaky on Windows by [@&#8203;dureuill](https://github.com/dureuill) in [#&#8203;6388](https://github.com/meilisearch/meilisearch/pull/6388) **Full Changelog**: <https://github.com/meilisearch/meilisearch/compare/v1.44.0...v1.45.0> ### [`v1.44.0`](https://github.com/meilisearch/meilisearch/releases/tag/v1.44.0) [Compare Source](https://github.com/meilisearch/meilisearch/compare/v1.43.1...v1.44.0) Meilisearch v1.44.0 adds remote federated facet search, indexing performance improvements, and other improvements and bugfixes. It also contains a couple of breaking changes, detailed below. ### Breaking changes - When using the `network` experimental feature, with sharding enabled (`leader` is not `null` in the network configuration), `POST /indexes/{indexUid}/facet-search` calls now default to a remote federated facet search, fetching and merging results from all shards in the network. - The timeout for calling an external REST embedder at search time is now tied to the `searchCutOffMs` defined in the index, rather than fixed. - If you observe missing semantic results after upgrading, or HTTP 500 errors for pure semantic search, please increase the value of the search cutoff in the index settings. - By [@&#8203;dureuill](https://github.com/dureuill) in https://github.com/meilisearch/meilisearch/pull/6377 ### 🌈 Improvements #### Remote facet search Meilisearch now has the ability to search across all shards of a network during facet search via the existing dedicated facet search route. - If you are using the `network` experimental feature and have a `leader` defined for your network, **remote calls are now the default** for calls to `POST /indexes/{indexUid}/facet-search` - The behavior can be controlled explicitly via the new `useNetwork` parameter of the [facet search object](https://www.meilisearch.com/docs/reference/api/facet-search/search-in-facets#body-facet-name). By [@&#8203;dureuill](https://github.com/dureuill) in https://github.com/meilisearch/meilisearch/pull/6375 #### Reduce memory usage of the indexing Reduces allocated memory when computing prefixes and speeds up some operations to avoid unnecessary deserialization. If you still see high memory usage while the engine is post-processing, we recommend using the `--experimental-reduce-indexing-memory-usage` option. By [@&#8203;Kerollmops](https://github.com/Kerollmops) in https://github.com/meilisearch/meilisearch/pull/6334 #### Improve GeoJSON indexing performance This PR upgrades the `cellulite` library to a version that includes a GeoJSON indexing optimization. With this change, GeoJSON indexing avoids reprocessing documents that were already indexed in dense cells, and only handles newly added documents incrementally as they descend through the recursive cell tree. By [@&#8203;YoEight](https://github.com/YoEight) in https://github.com/meilisearch/meilisearch/pull/6374 #### Human-formatted sizes and detailed DB sizes in stats Adds two new query parameters to `GET /indexes/{indexUid}/stats` and `GET /stats`: - `showInternalDatabaseSizes`: boolean, optional, defaults to `false`. When present, the index stat objects in responses of the stat routes now contain an additional `internalDatabaseSizes` key, whose value is a dictionary of the internal database names and their current size in the index, like in the stats object of a batch. - `sizeFormat`: `human` or `raw`: optional, defaults to `raw`. When present and set to `human`, then all database sizes in responses of the stat routes will be returned as a string containing an appropriate unit (MiB, GiB, etc). When missing or set to `raw`, then the current behavior of expressing the size in bytes as a number is retained. Note for integrations: The keys in `internalDatabaseSizes` are subject to change and should not be exposed as a strongly typed object. This is the same as the existing `internalDatabaseSizes` in batch stats. <details> <summary> Adding `showInternalDatabaseSizes` to an index stats </summary> ```jsonc // curl -X GET "http://localhost:7700/indexes/movies/stats?showInternalDatabaseSizes=true" { "numberOfDocuments": 31944, "rawDocumentDbSize": 20594688, "avgDocumentSize": 636, "isIndexing": false, "internalDatabaseSizes": { "wordPairProximityDocids": 100827136, "documents": 20594688, "wordPositionDocids": 18694144, "wordFidDocids": 10715136, "wordPrefixPositionDocids": 10256384, "wordDocids": 9453568, "wordPrefixFidDocids": 4603904, "wordPrefixDocids": 3424256, "main": 1425408, "externalDocumentsIds": 999424, "fieldIdWordCountDocids": 245760, "exactWordPrefixDocids": 16384, "celluliteMetadata": 16384 }, "numberOfEmbeddings": 0, "numberOfEmbeddedDocuments": 0, "fieldDistribution": { "genres": 31944, "id": 31944, "overview": 31944, "poster": 31944, "release_date": 31944, "title": 31944 } } ``` </details> <details> <summary> Adding `showInternalDatabaseSizes` and `sizeFormat=human` to global stats </summary> ```jsonc // curl -X GET "http://localhost:7700/stats?showInternalDatabaseSizes=true&sizeFormat=human" { "databaseSize": "351.38 MiB", "usedDatabaseSize": "350.64 MiB", "lastUpdate": "2026-04-16T13:07:02.74243Z", "indexes": { "comics": { "numberOfDocuments": 31944, "rawDocumentDbSize": "23.14 MiB", "avgDocumentSize": "751 B", "isIndexing": false, "internalDatabaseSizes": { "wordPairProximityDocids": "98.06 MiB", "documents": "23.14 MiB", "wordPositionDocids": "17.22 MiB", "wordFidDocids": "10.36 MiB", "wordPrefixPositionDocids": "9.47 MiB", "wordDocids": "8.97 MiB", "wordPrefixFidDocids": "4.36 MiB", "wordPrefixDocids": "3.27 MiB", "main": "1.36 MiB", "externalDocumentsIds": "944 KiB", "fieldIdWordCountDocids": "240 KiB", "exactWordPrefixDocids": "16 KiB", "celluliteMetadata": "16 KiB" }, "numberOfEmbeddings": 0, "numberOfEmbeddedDocuments": 0, "fieldDistribution": { "genres": 31944, "id": 31944, "overview": 31944, "poster": 31944, "release_date": 31944, "title": 31944 } }, "movies": { "numberOfDocuments": 31944, "rawDocumentDbSize": "19.64 MiB", "avgDocumentSize": "636 B", "isIndexing": false, "internalDatabaseSizes": { "wordPairProximityDocids": "96.16 MiB", "documents": "19.64 MiB", "wordPositionDocids": "17.83 MiB", "wordFidDocids": "10.22 MiB", "wordPrefixPositionDocids": "9.78 MiB", "wordDocids": "9.02 MiB", "wordPrefixFidDocids": "4.39 MiB", "wordPrefixDocids": "3.27 MiB", "main": "1.36 MiB", "externalDocumentsIds": "976 KiB", "fieldIdWordCountDocids": "240 KiB", "exactWordPrefixDocids": "16 KiB", "celluliteMetadata": "16 KiB" }, "numberOfEmbeddings": 0, "numberOfEmbeddedDocuments": 0, "fieldDistribution": { "genres": 31944, "id": 31944, "overview": 31944, "poster": 31944, "release_date": 31944, "title": 31944 } } } } ``` </details> <details> <summary> The call without any parameters is the same as in previous versions. </summary> ```jsonc // curl -X GET "http://localhost:7700/stats" { "databaseSize": 368443392, "usedDatabaseSize": 367673344, "lastUpdate": "2026-04-16T13:07:02.74243Z", "indexes": { "comics": { "numberOfDocuments": 31944, "rawDocumentDbSize": 24264704, "avgDocumentSize": 751, "isIndexing": false, "numberOfEmbeddings": 0, "numberOfEmbeddedDocuments": 0, "fieldDistribution": { "genres": 31944, "id": 31944, "overview": 31944, "poster": 31944, "release_date": 31944, "title": 31944 } }, "movies": { "numberOfDocuments": 31944, "rawDocumentDbSize": 20594688, "avgDocumentSize": 636, "isIndexing": false, "numberOfEmbeddings": 0, "numberOfEmbeddedDocuments": 0, "fieldDistribution": { "genres": 31944, "id": 31944, "overview": 31944, "poster": 31944, "release_date": 31944, "title": 31944 } } } } ``` </details> By [@&#8203;dureuill](https://github.com/dureuill) in https://github.com/meilisearch/meilisearch/pull/6338 ### 🦋 Fixes - Settings changes performed via a settings subroute (**not** the ["all settings" route](https://www.meilisearch.com/docs/reference/api/settings/update-all-settings)) are now correctly propagated to other remotes on the network. By [@&#8203;dureuill](https://github.com/dureuill) in https://github.com/meilisearch/meilisearch/pull/6380 - The chat route no longer fails in some condition when using Mistral as a provider. By [@&#8203;renezander030](https://github.com/renezander030) in https://github.com/meilisearch/meilisearch/pull/6327 - Prevent accidentally renaming a remote when modifying the network configuration. By [@&#8203;dureuill](https://github.com/dureuill) in https://github.com/meilisearch/meilisearch/pull/6370 ### 🔩 Miscellaneous changes - Replace boolean by PatternMatch for searchable by [@&#8203;ManyTheFish](https://github.com/ManyTheFish) in https://github.com/meilisearch/meilisearch/pull/6344 - Add query to federated search metadata by [@&#8203;StephaneRob](https://github.com/StephaneRob) in https://github.com/meilisearch/meilisearch/pull/6371 - Remove issue template for feature issues by [@&#8203;curquiza](https://github.com/curquiza) in https://github.com/meilisearch/meilisearch/pull/6372 - Improve the documentation of the health route by [@&#8203;Kerollmops](https://github.com/Kerollmops) in https://github.com/meilisearch/meilisearch/pull/6376 #### New Contributors - [@&#8203;renezander030](https://github.com/renezander030) made their first contribution in https://github.com/meilisearch/meilisearch/pull/6327 - [@&#8203;quyentonndbs](https://github.com/quyentonndbs) made their first contribution in https://github.com/meilisearch/meilisearch/pull/6382 **Full Changelog**: https://github.com/meilisearch/meilisearch/compare/v1.43.1...v1.44.0 </details> --- ### Configuration 📅 **Schedule**: (in timezone Europe/Berlin) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC40OS4wIiwidXBkYXRlZEluVmVyIjoiNDMuMjY1LjQiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=-->
kreativmonkey merged commit into main 2026-03-16 19:38:10 +01:00
chore(deps): update getmeili/meilisearch docker tag to v1.45.1
Some checks failed
/ secret_scanner (push) Failing after 7s
6911aecfde
Renovate changed title from chore(deps): update getmeili/meilisearch docker tag to v1.45.1 to Update getmeili/meilisearch Docker tag to v1.45.1 2026-06-01 14:03:11 +02:00
Renovate force-pushed renovate/getmeili-meilisearch-1.x from 6911aecfde
Some checks failed
/ secret_scanner (push) Failing after 7s
to bdc3cfc0fb
Some checks failed
/ secret_scanner (push) Failing after 5s
2026-06-02 18:01:24 +02:00
Compare
Renovate changed title from Update getmeili/meilisearch Docker tag to v1.45.1 to Update getmeili/meilisearch Docker tag to v1.45.2 2026-06-02 18:01:26 +02:00
Renovate force-pushed renovate/getmeili-meilisearch-1.x from bdc3cfc0fb
Some checks failed
/ secret_scanner (push) Failing after 5s
to 88baf2e19d
Some checks failed
/ secret_scanner (push) Failing after 8s
2026-06-08 14:02:32 +02:00
Compare
Renovate changed title from Update getmeili/meilisearch Docker tag to v1.45.2 to Update getmeili/meilisearch Docker tag to v1.46.0 2026-06-08 14:02:32 +02:00
Renovate force-pushed renovate/getmeili-meilisearch-1.x from 88baf2e19d
Some checks failed
/ secret_scanner (push) Failing after 8s
to e51e82b75e
Some checks failed
/ secret_scanner (push) Failing after 4s
2026-06-09 10:04:59 +02:00
Compare
Renovate changed title from Update getmeili/meilisearch Docker tag to v1.46.0 to Update getmeili/meilisearch Docker tag to v1.46.1 2026-06-09 10:05:01 +02:00
Renovate force-pushed renovate/getmeili-meilisearch-1.x from e51e82b75e
Some checks failed
/ secret_scanner (push) Failing after 4s
to 925dbcb150
Some checks failed
/ secret_scanner (push) Failing after 5s
2026-06-15 14:02:00 +02:00
Compare
Renovate changed title from Update getmeili/meilisearch Docker tag to v1.46.1 to Update getmeili/meilisearch Docker tag to v1.47.0 2026-06-15 14:02:03 +02:00
Renovate force-pushed renovate/getmeili-meilisearch-1.x from 925dbcb150
Some checks failed
/ secret_scanner (push) Failing after 5s
to b4055ca366
Some checks failed
/ secret_scanner (push) Failing after 5s
2026-06-22 14:02:03 +02:00
Compare
Renovate changed title from Update getmeili/meilisearch Docker tag to v1.47.0 to Update getmeili/meilisearch Docker tag to v1.48.0 2026-06-22 14:02:06 +02:00
Renovate force-pushed renovate/getmeili-meilisearch-1.x from b4055ca366
Some checks failed
/ secret_scanner (push) Failing after 5s
to b78072f0e9
Some checks failed
/ secret_scanner (push) Failing after 59s
2026-06-22 22:02:03 +02:00
Compare
Renovate changed title from Update getmeili/meilisearch Docker tag to v1.48.0 to Update getmeili/meilisearch Docker tag to v1.48.1 2026-06-22 22:02:04 +02:00
Renovate force-pushed renovate/getmeili-meilisearch-1.x from b78072f0e9
Some checks failed
/ secret_scanner (push) Failing after 59s
to 0be587ebf8
Some checks failed
/ secret_scanner (push) Failing after 6s
2026-06-24 18:01:45 +02:00
Compare
Renovate changed title from Update getmeili/meilisearch Docker tag to v1.48.1 to Update getmeili/meilisearch Docker tag to v1.48.2 2026-06-24 18:01:46 +02:00
Renovate force-pushed renovate/getmeili-meilisearch-1.x from 0be587ebf8
Some checks failed
/ secret_scanner (push) Failing after 6s
to 66a0f31e79
Some checks failed
/ secret_scanner (push) Failing after 6s
2026-06-29 14:07:25 +02:00
Compare
Renovate changed title from Update getmeili/meilisearch Docker tag to v1.48.2 to Update getmeili/meilisearch Docker tag to v1.48.3 2026-06-29 14:07:25 +02:00
Renovate force-pushed renovate/getmeili-meilisearch-1.x from 66a0f31e79
Some checks failed
/ secret_scanner (push) Failing after 6s
to 05b6860e07
Some checks failed
/ secret_scanner (push) Failing after 7s
2026-07-06 18:02:03 +02:00
Compare
Renovate changed title from Update getmeili/meilisearch Docker tag to v1.48.3 to Update getmeili/meilisearch Docker tag to v1.49.0 2026-07-06 18:02:05 +02:00
Renovate changed title from Update getmeili/meilisearch Docker tag to v1.49.0 to Update getmeili/meilisearch Docker tag to v1.50.0 2026-07-20 14:01:42 +02:00
Renovate force-pushed renovate/getmeili-meilisearch-1.x from 05b6860e07
Some checks failed
/ secret_scanner (push) Failing after 7s
to bc07e00032
Some checks failed
/ secret_scanner (push) Failing after 7s
2026-07-20 14:01:43 +02:00
Compare
Some checks failed
/ secret_scanner (push) Failing after 7s
This pull request can be merged automatically.
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin renovate/getmeili-meilisearch-1.x:renovate/getmeili-meilisearch-1.x
git switch renovate/getmeili-meilisearch-1.x

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch main
git merge --no-ff renovate/getmeili-meilisearch-1.x
git switch renovate/getmeili-meilisearch-1.x
git rebase main
git switch main
git merge --ff-only renovate/getmeili-meilisearch-1.x
git switch renovate/getmeili-meilisearch-1.x
git rebase main
git switch main
git merge --no-ff renovate/getmeili-meilisearch-1.x
git switch main
git merge --squash renovate/getmeili-meilisearch-1.x
git switch main
git merge --ff-only renovate/getmeili-meilisearch-1.x
git switch main
git merge renovate/getmeili-meilisearch-1.x
git push origin main
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
kreativmonkey/homelab-app!1
No description provided.