Update getmeili/meilisearch Docker tag to v1.49.0#76
Open
renovate[bot] wants to merge 1 commit into
Open
Conversation
10e3884 to
4f133e2
Compare
c645ae2 to
4fef743
Compare
4fef743 to
bdfd6d8
Compare
bdfd6d8 to
b7eeaa3
Compare
b7eeaa3 to
6825dac
Compare
6825dac to
dbe9af8
Compare
dbe9af8 to
513b40c
Compare
513b40c to
7eeb173
Compare
7eeb173 to
52154b3
Compare
52154b3 to
4c4d8d9
Compare
4c4d8d9 to
66a7d06
Compare
66a7d06 to
e1f8c72
Compare
5e498f8 to
f523bd4
Compare
e1f8c72 to
224752c
Compare
224752c to
5bba955
Compare
5bba955 to
98dd94a
Compare
98dd94a to
e754f46
Compare
e754f46 to
e504653
Compare
e504653 to
00f9de2
Compare
00f9de2 to
c047e8a
Compare
c047e8a to
b96da94
Compare
b96da94 to
f32a813
Compare
f32a813 to
c915603
Compare
c915603 to
83fb58e
Compare
83fb58e to
79b4b4e
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
v1.11.1→v1.49.0Release Notes
meilisearch/meilisearch (getmeili/meilisearch)
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: meilisearch/meilisearch@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: meilisearch/meilisearch@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:
{ "template": /* templateTarget object */, "input": /* inputTarget object or null */ }where
templatedescribes the template or fragment to render, andinputdescribes 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
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:PATCH /experimental-features --json '{"renderRoute": true}'Examples
request
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..." }request
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..." } ] } }request
response
{ "template": "It's a {{ media.breed }}", "rendered": "It's a jack russell" }request
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" }request
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" }request
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
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: meilisearch/meilisearch@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: meilisearch/meilisearch@v1.45.1...v1.45.2
v1.45.1: 🦒Compare Source
🪲 Bug Fixes
Full Changelog: meilisearch/meilisearch@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: meilisearch/meilisearch@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 #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 #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 #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 #6338
🦋 Fixes
🔩 Miscellaneous changes
New Contributors
Full Changelog: meilisearch/meilisearch@v1.43.1...v1.44.0
v1.43.1Compare Source
Meilisearch v1.43.1 contains a security fix for an authenticated SSRF vulnerability.
No exploitation was found on Meilisearch Cloud. Cloud users are not required to update.
We recommend that self-hosting users upgrade if they allow third parties to configure Meilisearch instances.
We thank Sion Park (@tldhs1144), who reported the issue and suggested a fix, for improving the security of Meilisearch ❤️
v1.43.0Compare Source
🌈 Enhancements
New settings indexer
The new settings indexer, a more efficient version of our internal indexer for index settings modifications, now supports filterable, sortable, facet search, and custom (asc/desc) attributes in addition to the already-supported searchable, exact, proximity precision, and embedders.
MEILI_EXPERIMENTAL_NO_EDITION_2024_FOR_SETTINGStotrue.By @Kerollmops in #6124
Improve facet search indexing performance
We reduced the time to generate the internal data structures for the facet search to work. We were previously doing a couple of full scans on the internal entries and replaced these with scans on specific entries, only the ones dedicated to the facet searchable fields.
By @Kerollmops in #6325
Improve task queue compaction integration
The
GET /healthroute now returns HTTP 500 after a successful task queue compaction, to signal that Meilisearch should be restarted so that tasks can be enqueued again.For Meilisearch Cloud users, this ensures that compacting the task queue will automatically restart the instance after the compaction.
🦋 Fixes
Fix lexicographic filters on strings
Fixes a bug where string facet values appearing in
<, <=, >, >=andINfilters were not normalized before comparison to facet values.This would cause some values in documents (e.g.
2026-01-01T00:00:00) to appear to be higher than their filter counterpart, due to being normalized (e.g. like2026-01-01t00:00:00).Thanks to @njaard for reporting the issue ❤️
By @dureuill in #6340
Fix typo tolerance v1.41 regression
Fixes the
WordDelta::added_or_deleted_wordsfunction.By @Kerollmops in #6350.
Thanks to @vladradin99 and @snurfer0 for reporting the issue in #6349 and #6324 ❤️
🔩 Miscellaneous
Thanks again @gounthar, @njaard, @vladradin99 and @snurfer0 for your contributions ❤️
Full Changelog: meilisearch/meilisearch@v1.42.1...v1.43.0
v1.42.1: 🦑Compare Source
🪲 Bug fixes
Fix issues when using the legacy settings indexer
By @dureuill and @ManyTheFish in #6331
regenerate: falsewould be ignored when modifying embedder settings🔩 Miscellaneous
v1.42.0: 🦑Compare Source
✨ Enhancement
Introduce the RemoteAvailability struct to support query fallback
By @Kerollmops in #6306
We introduce a new fallback system for the sharding and replication enterprise edition feature, along with a way to determine which remote is available. The engine can avoid machines that are unavailable for a period and resume querying them once they're back online.
The following snippet shows what the /network route looks like now that this PR exposes the remote statuses/availabilities.
🔬 Experimental: Document join Filtering
By @ManyTheFish in #6314
This enhancement extends the
Cross-index document hydration introducedin v1.39.0 by allowing the user to filter on the foreign indexes to retrieve the documents.foreignKeysexperimental featureThe
foreignKeysexperimental feature must be activated to use the foreign filters:foreignKeys+filterindex settingTo be able to use the foreign filters, the related field must be set as a foreignKey and as a filterableAttribute in
/indexes/{index_uid}/settings:{ // new setting, an array of foreign keys that allows multiple foreign relationships between indexes "foreignKeys": [ { // the path in the JSON document containing foreign document ids "fieldName": "actors", // the UID of the foreign index containing the documents to fetch during hydration "foreignIndexUid": "actors" } ], // the actors field must be filterable on equality "filterableAttributes": [ { "attributePatterns": ["actors"], "features": { "facetSearch": false, "filter": { "equality": true, "comparison": false } } } ] }filtering using the
_foreignfilterOn the search route, a new
_foreignverb has been introduced and should be used as follows:{ "q": "<query>", // filters on the movie index: // genres = action // AND // the foreign documents from the actor index match: birthday STARTS WITH \"1958-\" AND popularity >= 3.5 "filter": "genres = action AND _foreign(actors, birthday STARTS WITH \"1958-\" AND popularity >= 3.5)" }Example of usage
Prerequisites
127.0.0.1:7700on thedocument-join-hydrationbranch.Step 1: Enable Foreign Keys Feature
Step 2: Create Indexes
Create the
actorsindexCreate the
moviesindexStep 3: Add Documents to the
actorsIndexStep 4: Add Documents to the
moviesIndexStep 5: Configure Foreign Keys on the
moviesIndexStep 6: Configure filterable on the
actorsIndexStep 7: Perform a Federated Search
Expected Result
The federated search should return movie documents with the
actorsarray automatically hydrated with full actor objects instead of just IDs:{ "hits": [ { "id": 1, "title": "Forrest Gump", "description": "...", "actors": [ { "id": 1, "name": "Tom", "familyName": "Hanks", "birthDate": "1956-07-09" } ], "_federation": { "indexUid": "movies", "queriesPosition": 0, "weightedRankingScore": 0.9848484848484849 } } ], "processingTimeMs": 208, "limit": 20, "offset": 0, "estimatedTotalHits": 1 }🪲 Bug fixes
Fix a race condition when writing network by @Kerollmops in #6300
We fixed a race condition in network topology changes that could cause errors and prevent documents from being correctly indexed. Additionally, we fixed a bug in the
networkTopologyChangetask batching that was causing it to batch too many task types. We made sure it only batches import tasks, and only those, to avoid out-of-order task processing.Throw document template errors when updating the chat settings by @Kerollmops in #6321
We fixed an issue that prevented the engine from explicitly showing the possible document template errors users could encounter when updating the template in the chat settings. The engine now correctly checks for and throws template errors when they are detected.
Fix: Update Index tasks will be properly forwarded to remote nodes by @dureuill in #6299
Fix action mistake on the chat co
Configuration
📅 Schedule: (UTC)
🚦 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 was generated by Mend Renovate. View the repository job log.