Update getmeili/meilisearch Docker tag to v1.50.0 #1
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "renovate/getmeili-meilisearch-1.x"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
This PR contains the following updates:
v1.43.1→v1.50.0Release 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
dynamicSearchRulesexperimental featureRequest type changes
priorityhas been replaced withprecedence, which better reflects the behavior (lower precedence means the rule is applied first)conditionshas been modified from an array to an object with two fields: "query" of typeQueryConditionand "time" of timeTimeConditionQueryConditionthat contains the fieldsisEmpty(as previously) andwordsinstead ofcontains(same type)isEmpty: falsewithwordsin aQueryCondition. PassingisEmpty:truewithwordsstill results in a synchronous error.TimeConditionwith fieldsstartandend(unchanged semantics from previous type).selectorof anAction, it is now mandatory to specify anid. Previously, it was optional, but the action would never trigger.POST /dynamic-search-rules,filter.attributePatternshas been replaced withfilter.query, an optional string that searches in ruledescriptionandconditions.query.words.DELETE /dynamic-search-rules/{:ruleUid}orPATCH /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
PATCH /dynamic-search-rules/{:ruleUid}andDELETE /dynamic-search-rules/{:ruleUid}now register an asynchronous task..{: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 ofDELETE /indexes/{:indexUid}/documents/{:docId}for{:docId}networkexperimental featureThe default behavior for users using the network experimental feature with sharding configured (
leadernotnull) will change on the following routes:indexes/:uid/documentsindexes/:uid/documents/:document_idindexes/:uid/documents/fetchMeilisearch 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
useNetworktofalsewhen making their request.🌈 Improvements
Scaling up the Dynamic Search Rules
Additions
DELETE /dynamic-search-ruleroute that deletes all the DSRsMEILI_EXPERIMENTAL_DSR_FUEL_MAX_COUNTED_WORDS: max number of words considered inside of a search query for the purpose of findingconditions.query.wordsconstraints. Defaults to 10, max value is 255MEILI_EXPERIMENTAL_DSR_FUEL_MAX_ACTIVE_RULES: max number of active rules whose actions are evaluated. Defaults to 1000, max value is4294967MEILI_EXPERIMENTAL_DSR_FUEL_MAX_PIN_ACTIONS: max number of pin actions that are applied. Defaults to 100, max value is4294967MEILI_EXPERIMENTAL_DSR_FUEL_WORD_FUEL: max number of constraint combinations that are evaluated for the purpose of findingconditions.query.wordsconstraints. Defaults to 4096, max value is4294967By @dureuill in #6484 and #6506
Behavior changes
conditions.query.wordsbehaves differently fromquery.contains: previously, a rule would match if its conditionsquery.containswould be substrings ofqin the search query in the sense ofstr::contains. Now, a rule matches if all the words inconditions.query.wordsappear inq(after normalization). Forq = hero super,query.contains = super herowould not match, whereasconditions.query.words = super herodoes now match. This behavior is more in line with regular search, and allows improving performance.Federated document fetch routes
GET
indexes/:uid/documents, GETindexes/:uid/documents/:document_idand POSTindexes/:uid/documents/fetchwill now fetch the documents from all the shards in the configured network.Moreover, a new
useNetworkparameter is available to activate or deactivate the usage of the network.By @ManyTheFish in #6495
Support partial wildcards when requesting facets
The
facetsparameter 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 infilterableAttributes.attributePatternsandlocalizedAttributes.attributePatterns, such asdogs.*, which will add to the facet distribution all filterable fields that match the pattern (such asdogs.intel,dogs.kefir, etc.).By @Kerollmops in #6497
🦋 Fixes
Fix migration from v1.48 and earlier
Migration via
--experimental-dumpless-upgradewould 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
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:
indexesis not["*"]and whereactionscontains more permissions than:["search", "documents.*", "indexes.*", "tasks.cancel", "tasks.delete", "tasks.get", "settings.*", "stats.*", "fields.post"]These versions both fix the following:
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
Introduces a new
POST /render-templateroute that can be used to render any template or fragment on any input and associatedrenderRouteexperimental 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:
where
templatedescribes the template or fragment to render, andinputdescribes what to use to render the template.Upon calling this route, Meilisearch responds with:
where
templatecontains the unrendered base text of the document template, or the unrendered base JSON object of a fragment, andrenderedcontains the result of rendering the template of the chosen input.If
inputisnullin the request, thenrenderedisnullin 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
renderRouteexperimental feature:Examples
request
response
request
response
request
response
request
response
request
response
request
response
[Experimental] Only support foreign filters on retrieval routes
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:
/indexes/{index_uid}/documents/edit/indexes/{index_uid}/documents/delete/export🪲 Bug fixes
🔒 Security
🔩 Miscellaneous
queueDocumentsFetchexperimental feature withdisableDocumentsFetchQueueconverting the feature from an opt-in to an opt-outBy @ManyTheFish in #6456
❤️ 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:
indexesis not["*"]and whereactionscontains more permissions than:["search", "documents.*", "indexes.*", "tasks.cancel", "tasks.delete", "tasks.get", "settings.*", "stats.*", "fields.post"]These versions both fix the following:
We detected no trace of exploitation of these vulnerabilities.
We thank PuH4ck3rX for reporting these vulnerabilities ❤️
v1.47.0: 🦇Compare Source
🌈 Enhancements
Search personalization on federated search
We now support using the search personalization feature on federated search requests.
Like
page/hitPerPageorlimit/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 🎉
MEILI_EXPERIMENTAL_NO_EDITION_2024_FOR_SETTINGSenvironment variable totrue, 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
searchCutoffMsin some conditions when embedding documents, by @dureuill in #6447'during remote federated search oruseNetwork: truesearch 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:
MultiSearch<Error><-->Search<Error>Other changes
vectorStoreBackendsetting from the settings, by @Kerollmops in #6399MustStopProcessingtype everywhere by @Kerollmops in #6423New 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 routesGET indexes/:uid/documentsandPOST indexes/:uid/documents/fetchto 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
documentDeletionByFilterwithdocumentAdditionOrUpdateby @Kerollmops and @ManyTheFish in #6415Correctly 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
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
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.
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=trueor use the equivalent dedicated CLI parameter.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.
Meilisearch can use the new settings indexer when the settings change the facet search root boolean parameter.
🪲 Bug Fixes
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.0Compare 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
networkexperimental feature, with sharding enabled (leaderis notnullin the network configuration),POST /indexes/{indexUid}/facet-searchcalls now default to a remote federated facet search, fetching and merging results from all shards in the network.searchCutOffMsdefined in the index, rather than fixed.🌈 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.
networkexperimental feature and have aleaderdefined for your network, remote calls are now the default for calls toPOST /indexes/{indexUid}/facet-searchuseNetworkparameter 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-usageoption.By @Kerollmops in https://github.com/meilisearch/meilisearch/pull/6334
Improve GeoJSON indexing performance
This PR upgrades the
cellulitelibrary 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}/statsandGET /stats:showInternalDatabaseSizes: boolean, optional, defaults tofalse. When present, the index stat objects in responses of the stat routes now contain an additionalinternalDatabaseSizeskey, 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:humanorraw: optional, defaults toraw. When present and set tohuman, 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 toraw, then the current behavior of expressing the size in bytes as a number is retained.Note for integrations: The keys in
internalDatabaseSizesare subject to change and should not be exposed as a strongly typed object. This is the same as the existinginternalDatabaseSizesin batch stats.Adding
showInternalDatabaseSizesto an index statsAdding
showInternalDatabaseSizesandsizeFormat=humanto global statsThe call without any parameters is the same as in previous versions.
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)
🚦 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.
This PR has been generated by Mend Renovate.
chore(deps): update getmeili/meilisearch docker tag to v1.45.1to Update getmeili/meilisearch Docker tag to v1.45.16911aecfdebdc3cfc0fbUpdate getmeili/meilisearch Docker tag to v1.45.1to Update getmeili/meilisearch Docker tag to v1.45.2bdc3cfc0fb88baf2e19dUpdate getmeili/meilisearch Docker tag to v1.45.2to Update getmeili/meilisearch Docker tag to v1.46.088baf2e19de51e82b75eUpdate getmeili/meilisearch Docker tag to v1.46.0to Update getmeili/meilisearch Docker tag to v1.46.1e51e82b75e925dbcb150Update getmeili/meilisearch Docker tag to v1.46.1to Update getmeili/meilisearch Docker tag to v1.47.0925dbcb150b4055ca366Update getmeili/meilisearch Docker tag to v1.47.0to Update getmeili/meilisearch Docker tag to v1.48.0b4055ca366b78072f0e9Update getmeili/meilisearch Docker tag to v1.48.0to Update getmeili/meilisearch Docker tag to v1.48.1b78072f0e90be587ebf8Update getmeili/meilisearch Docker tag to v1.48.1to Update getmeili/meilisearch Docker tag to v1.48.20be587ebf866a0f31e79Update getmeili/meilisearch Docker tag to v1.48.2to Update getmeili/meilisearch Docker tag to v1.48.366a0f31e7905b6860e07Update getmeili/meilisearch Docker tag to v1.48.3to Update getmeili/meilisearch Docker tag to v1.49.0Update getmeili/meilisearch Docker tag to v1.49.0to Update getmeili/meilisearch Docker tag to v1.50.005b6860e07bc07e00032View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.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.