Update getmeili/meilisearch Docker tag to v1.38.2 #41
No reviewers
Labels
No labels
Compat/Breaking
Kind/Bug
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Security
Kind/Testing
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Reviewed
Confirmed
Reviewed
Duplicate
Reviewed
Invalid
Reviewed
Won't Fix
Status
Abandoned
Status
Blocked
Status
Need More Info
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Aroy/Paws!41
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.31.0→v1.38.2Release Notes
meilisearch/meilisearch (getmeili/meilisearch)
v1.38.2: 🐍Compare Source
Full Changelog: https://github.com/meilisearch/meilisearch/compare/v1.38.1...v1.38.2
v1.38.1: 🐍Compare Source
Meilisearch v1.38.1 fixes a regression we have seen in task processing, which caused the engine to stop processing tasks.
🪲 Bug fixes
Full Changelog: https://github.com/meilisearch/meilisearch/compare/v1.38.0...v1.38.1
v1.38.0: 🐍Compare Source
Meilisearch v1.38 drastically improves indexing performance for embeddings, cleans up the task queue of orphan tasks and batches, ensures they are correctly deleted now, fixes issues users may encounter with OpenAI or VoyageAI when generating embeddings, and improves the tooling for generating routes in the documentation.
✨ Enhancement
We drastically reduced embedding indexing time by eliminating full database scans. It is more efficient to add a couple of embeddings to a large database now.
🪲 Bug fixes
connection reset by peererrors when embedding documents or search queries using a remote embedder. By @dureuill in #6191🔩 Miscellaneous
The reference API is now generated from the source code, but it used to miss some actix-declared routes. It is now mandatory to attach a route when using the newly-provided
routes::routesandroutes::pathmacros, which ensures the route is added to the reference. Please refer to the documentation of the individual macros and the many examples throughout the codebase for more details.New Contributors
v1.37.0Compare Source
Meilisearch v1.37 introduces replicated sharding, removes the
vectorStoreSettingexperimental feature, stabilizes our new vector store for best performance, adds a security fix and miscellaneous improvements.✨ Improvements
§ Replicated sharding
§ Breaking changes
networkobjects sent to thePATCH /networkroute must now contain at least oneshardobject containing at least one remote whenleaderis notnull.Existing databases will be migrated automatically when upgraded with
--experimental-dumpless-upgradewhenleaderis notnull, such that for each remote:remoteslist: the remote with the same name as the shard.This change will not cause any document to be resharded.
To be able to upgrade without resharding, the migration uses the same name for remotes and for shards. However, in new configurations, we recommend using different names for shards and remotes.
Example of migration
For instance, the following network object:
is converted to:
Addition of
network.shardsThe
networkobject for routesPATCH /networkandGET /networknow contains the new fieldshards, which is an object whose values areshardobjects, and keys the name of each shard.Each
shardobject contains a single fieldremotes, which is an array of strings, each string representing the name of an existing remote.Convenience fields
The
shardobjects inPATCH /networkcontain the additional fieldsaddRemotesandremoveRemotesmeant for convenience:shard.addRemotesto add these remotes to the list of remotes of a shard.shard.removeRemotesto remove these remotes from the list of remotes of a shard.null,shard.remoteswill completely override the existing list of remotes for a shard.null, then the order of application isshard.remotes, thenshard.addRemotes, thenshard.removeShards.Adding a new shard with some remotes
Remotes
ms-0andms-1own the new shards-a.Fully overriding the list of remotes owning a shard
ms-2is now the sole owner ofs-a, replacingms-0andms-1.Adding a remote without overriding the list of remotes owning a shard
ms-0andms-2are now the owners ofs-a.Removing a remote without overriding the list of remotes owning a shard
ms-0is now the sole owner ofs-a.Entirely removing a shard from the list of shards
Set the shard to
null:Or set its
remoteslist to the empty list:network.shardsvalidityWhen
network.leaderis notnull, eachshardobject innetwork.shardsmust:remotesthat exist in the list ofremotes.Additionally,
network.shardsmust contain at least one shard.Failure to meet any of these conditions will cause the
PATCH /networkroute to respond with400 invalid_network_shards.Change in sharding logic
Documents are now sharded according to the list of shards declared in the network rather than the list of remotes. All remotes owning a shard will process the documents that belong to this shard, allowing for replication.
Example of replication
The following configuration defines 3 remotes
0,1and2, and 3 shardsA,B,C, such that each remote owns two shards, achieving replication (losing one remote does not lose any document).useNetworktakesnetwork.shardsinto accountWhen
useNetwork: trueis passed to a search query, it is expanded to multiple queries such that each shard declared innetwork.shardsappears exactly once, associated with a remote that owns that shard.This ensures that there is no missing or duplicate documents in the results.
_shardfiltersWhen the
networkexperimental feature is enabled, then it becomes possible to filter documents depending on the shard they belong to.Given
s-aands-bthe names of two shards declared innetwork.shards, then:_shard = "s-a"in afilterparameter to the search or documents fetch will return the documents that belong tos-a._shard != "s-a"will return the documents that do not belong tos-a_shard IN ["s-a", "s-b"]will return the documents that belong tos-aor tos-b.You can use these new filters in manual remote federated search to create a partitioning over all shards in the network.
Update instructions
When updating your Meilisearch network using dumpless upgrade, please observe the following guidelines:
PATCH /networkroute until all remotes of the network are finished updatinguseNetwork: true, call them on un-updated remotes. Calling it on already updated remotes will cause un-updated remotes to fail the search as they don't know about the_shardfilters.By @dureuill in #6128
§ Remove
vectorStoreSettingexperimental featureThe new HNSW vector store (hannoy) has been stabilized and is now the only supported vector store in Meilisearch.
As a result, updating to v1.37.0 will migrate all remaining legacy vector store indexes (using arroy) to hannoy, and the
vectorStoreSettingexperimental feature is no longer available.By @Kerollmops in #6176
Improve indexing performance for embeddings
We removed a computationally expensive step from vector indexing.
On a DB with 20M documents, this removes 300s per indexing batch of 1100s.
By @Kerollmops in #6175
§ 🔒 Security
localStorageBy @Strift and @curquiza in #6186 and #6172
§ 🔩 Miscellaneous
Full Changelog: https://github.com/meilisearch/meilisearch/compare/v1.36.0...v1.37.0
v1.36.0: 🐙Compare Source
Version v1.36.0 introduces an exciting update to the ranking rules to improve the engine's relevance. It's actually the first time we've made such a change since v1.0, and we're really happy about this improvement!
✨ Enhancement
Introduce the
attributeRankandwordPositioncriteria by @Kerollmops in #6154, #6155, and #6164We released two new ranking rules that Meilisearch had already been using internally for the
attributeone, which is basically both ranking rules applied one after the other:attributeRank: A document is considered better if the query words match in a higher searchable attribute. It ignores the position of the query words in this attribute.wordPosition: A document is considered better if the query words match closer to the beginning of an attribute. The attribute rank is ignored by this rule.We continue our policy of migrating everyone to use a homemade HNSW by introducing a new dumpless upgrade step that migrates index uses the old annoy vector store to the new Hannoy one. Changing the vector store backend affects the ranking score. This step can take a couple of minutes when the number of embeddings is high, and we recommend changing the vector store backend beforehand to gain more control if needed. To do so, you must enable the
vectorStoreSettingexperimental feature and set thevectorStoreroot setting toexperimental.🪲 Bug fixes
attributesToSearchOnon an empty index by @zen-zap in #5944🔒 Security
🔩 Miscellaneous
❤️ Thanks to @zen-zap for contributing to this release!
v1.35.1Compare Source
🦋 Bug fixes
Meilisearch v1.35.1 fixes a possible task database corruption issue that would occur when using the S3 streaming snapshot method.
Details
While snapshotting the task database, sending a task to Meilisearch could corrupt it. Index DBs were not affected, so manually rebuilding the task database fixes the corruption.
By @dureuill in #6160
Full Changelog: https://github.com/meilisearch/meilisearch/compare/v1.35.0...v1.35.1
v1.35.0Compare Source
Meilisearch v1.35.0 contains improvements to the observability of the search performance, a breaking change to the recently introduced
POST /indexes/<index_uid>/fieldsroute, and other bugfixes and improvements.🌈 Improvements
Observe the search performance
The search routes accept a new field named
showPerformanceDetails. When set to ù true`, the search response contains a performance trace, allowing the user to betterunderstand what takes time during a search query.
impacted routes:
POST /indexes/<index_uid>/searchGET /indexes/<index_uid>/searchPOST /multi-searchPOST /indexes/<index_uid>/similarGET /indexes/<index_uid>/similarSearch
routes:
POST /indexes/<index_uid>/searchandGET /indexes/<index_uid>/searchRequest
new request parameters:
showPerformanceDetails:true/false(boolean)example
Response
new response field:
performanceDetails:{"<span>": "<human_duration>", .. }(map)example
Multi-search
route:
POST /multi-searchRequest
new request parameters:
queries.showPerformanceDetails:true/false(boolean)example
Response
new response field:
results.performanceDetails:{"<span>": "<human_duration>", .. }(map)example
Federated Search
route:
POST /multi-searchRequest
new request parameters:
federation.showPerformanceDetails:true/false(boolean)example
Response
new response field:
performanceDetails:{"<span>": "<human_duration>", .. }(map)example
Similar
routes:
POST /indexes/<index_uid>/similarandGET /indexes/<index_uid>/similarRequest
new request parameters:
showPerformanceDetails:true/false(boolean)example
Response
new response field:
performanceDetails:{"<span>": "<human_duration>", .. }(map)example
By @ManyTheFish in #6132
Stabilize multithreaded post-processing of facets and prefixes
Multithreaded post-processing of facets and prefixes speeds-up indexing on multi-core machines.
Before v1.35.0, it could be disabled with an experimental feature.
Meilisearch v1.35.0 removes that experimental feature, resulting in the multithreaded post-processing being always enabled.
Cloud users upgrading to v1.35.0 will benefit from the speed-up.
By @ManyTheFish in #6130
🦋 Fixes
Breaking change: return pagination fields in
POST /indexes/<index_uid>/fieldsrouteExample: before/after
Before:
After:
By @ManyTheFish in #6126
POST /indexes/<index_uid>/fields: Fix pattern filtering when a parent field was matching a child pattern:titlewas matching the patterntitle.to*.Example: before/after
For the following request:
Before Response,
titlefield is returned:After Response, nothing returned:
By @ManyTheFish, also in #6126
🐛 Other fixes
🔩 Miscellaneous
New Contributors
Full Changelog: https://github.com/meilisearch/meilisearch/compare/v1.34.3...v1.35.0
v1.34.3Compare Source
🐛 Bug Fixes
Full Changelog: https://github.com/meilisearch/meilisearch/compare/v1.34.2...v1.34.3
v1.34.2Compare Source
This patch fixes an accidental breaking change in v1.34.1 where Meilisearch would not start with a configuration file if
experimental_allowed_ip_networkswas not defined.Full Changelog: https://github.com/meilisearch/meilisearch/compare/v1.34.1...v1.34.2
v1.34.1Compare Source
v1.34.0Compare Source
🌈 Improvements
Easy search over your network of machines
useNetworkfield inPOST /indexes/{:indexUid}/searchThe search query object passed in the body of
POST /indexes/{:indexUid}/searchnow accepts an optional booleanuseNetwork. When present and set totrue, the search is executed "as-if" it was a remote federated search over all remotes in the network.That is, the following:
Search request
Is executed by Meilisearch as if it was the following, assuming a network of 3 Meilisearch instances with names
"0", "1" and "2":Equivalent multi-search request
Resulting in:
Search Response
useNetworkrequires thenetworkexperimental feature to be enabled.useNetworkquery parameter inGET /indexes/{:indexUid}/searchPassing
useNetwork=trueas a query parameter toGET /indexes/{:indexUid}/searchhas the same effect as passinguseNetwork: trueas a field parameter toPOST /indexes/{:indexUid}/search.queries[].useNetworkfield inPOST /multi-searchuseNetworkcan also be passed as a field of the individual queries inside of amulti-searchrequest.POST /indexes/{:indexUid}/searchfor that queryFederated search example:
Multi-search request
Multi-search response
Limitations
useNetworkare not supporteduseNetworkat the moment: doing so is not trivial implementation-wise, because chat route expects to be able to open the index (to fetch chat configs), but federated search only opens the indexes once during a short critical section.By @dureuill in #6101
Federated search supports
pageandhitsPerPagePass
federation.pageandfederation.hitsPerPagewith the same meaning as in a regular search request to use exhaustive pagination in the federated searchBy @dureuill in #6101
Speed up settings changes when removing searchable
The settings indexer is more efficient when users are removing searchable attributes from the searchable fields.
By @VedantMadane in #6109
🔒 Security
Solves a low-severity timing attack vulnerability on key comparison by using constant-time comparison
By @curquiza in #6077
🔩 Maintenance
Remove some unwanted dependencies
New Contributors
❤️ Thanks again @VedantMadane for the contribution to this release!
Full Changelog: https://github.com/meilisearch/meilisearch/compare/v1.33.1...v1.34.0
v1.33.1: 🐞Compare Source
What's Changed
Full Changelog: https://github.com/meilisearch/meilisearch/compare/v1.33.0...v1.33.1
v1.33.0: 🐞Compare Source
✨ Enhancement
Add
/fieldsroute to get all the fields of an index by @YoEight in #6082Adds a new POST
/indexes/{indexUid}/fieldsendpoint that returns detailed metadata about all fields in an index. This endpoint provides comprehensive information about each field's configuration, including display, search, filtering, and localization settings.Implement parallel cleanup of old field IDs by @Kerollmops in #6100
We reduce the time required to perform the dumpless upgrade for instances before v1.32.0 by multi-threading database fetches. By doing that, we noticed improvements from 2 hours and 50 minutes to a bit less than 7 minutes.
Bump hannoy to 0.1.4-nested-rtxns by @Kerollmops in #6103
We updated our internal vector store to speed up the dumpless upgrade by improving the graph rebuilding and improving the speed and relevance of the search by using the explore factor as a limit to stop document searches rather than the query limit.
🪲 Bug fixes
🔒 Security
🔩 Miscellaneous
Thank you @Vipul-045 for your first contribution ❤️
v1.32.2: 🐟Compare Source
🐛 Bug fixes
Full Changelog: https://github.com/meilisearch/meilisearch/compare/v1.32.1...v1.32.2
v1.32.1: 🐟Compare Source
🌈 Improvements
Skip cleaning up the field-ID-based databases
Introduce a
MEILI_EXPERIMENTAL_DISABLE_FID_BASED_DATABASES_CLEANUPenv var to opt out of the field ID-based database cleanup when upgrading a Meilisearch from versions inferior to 1.32.0.Full Changelog: https://github.com/meilisearch/meilisearch/compare/v1.32.0...v1.32.1
v1.32.0: 🐟Compare Source
🌈 Improvements
Log Search performance trace
Introduces comprehensive progress tracking and logging for search operations in Meilisearch. It adds detailed timing information for each step of the search process, enabling better observability and performance analysis.
Extract document operations from payloads in parallel
We accelerate document indexing by processing a large number of tasks in batches or a large number of records in parallel. We expedited the preparation of the payloads by extracting the various changes and assigning internal IDs in parallel. We achieved a 7x speedup on a four-million-document insertion using four CPUs, and the performance scales with the number of CPUs.
The
indexedDocumentsfield in tasks using skipCreation no longer precisely reflects the number of document operations performed, specifically forPOSTandPUToperations. This count may be higher than the actual number of operations, but it doesn't affect the computation; only the reported count is impacted. We prioritize speed over perfect accuracy here, and the documents are still correctly indexed as before.🐛 Bug fixes
Vector sort: Bucket documents with same similarity
Fixed vector sort bucketing so documents with identical similarity scores are grouped together, ensuring subsequent ranking rules are applied correctly.
Properly Delete Documents from FID-Based Databases
Fixes a bug where changing searchableAttributes from ["*"] to a subset of fields left orphaned data in fid-based databases, causing corruption and warnings during search.
Rebuild the graph links when dumpless-upgrading
Bumps hannoy to v0.1.3-nested-rtxns, which fixes graph-related recall issues and adds a method to rebuild graph links to recover previously malformed graphs. Also fixes a minor issue in the dumpless upgrade flow where the upgrade description was not displayed correctly and related operations were not properly associated with the upgrade.
🛠️ Maintenance and Misc.
Update JS SDKs tests to use
pnpminstead ofyarnUpdated the JavaScript SDK tests to use pnpm instead of yarn in CI workflows, switching the package manager across test configurations to ensure the SDK test suite runs correctly and consistently with the current tooling.
Adapt JS tests in SDK tests CI
Updated the SDK tests CI workflow for the JavaScript SDKs
Bump lru from 0.16.2 to 0.16.3
Fix Stacked Borrows violation in
IterMut.Full Changelog: https://github.com/meilisearch/meilisearch/compare/v1.31.0...v1.32.0
Configuration
📅 Schedule: 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.
This PR has been generated by Renovate Bot.
931a9d27394c5de433b84c5de433b886070ed9dbUpdate getmeili/meilisearch Docker tag to v1.32.0to Update getmeili/meilisearch Docker tag to v1.32.186070ed9db0842244ab4Update getmeili/meilisearch Docker tag to v1.32.1to Update getmeili/meilisearch Docker tag to v1.32.20842244ab4e9889c73deUpdate getmeili/meilisearch Docker tag to v1.32.2to Update getmeili/meilisearch Docker tag to v1.33.0e9889c73de2a15f5e8efUpdate getmeili/meilisearch Docker tag to v1.33.0to Update getmeili/meilisearch Docker tag to v1.33.12a15f5e8efca662c2ea2ca662c2ea2873dc68483873dc684834b48be2434Update getmeili/meilisearch Docker tag to v1.33.1to Update getmeili/meilisearch Docker tag to v1.34.04b48be243425329509f2Update getmeili/meilisearch Docker tag to v1.34.0to Update getmeili/meilisearch Docker tag to v1.34.1Update getmeili/meilisearch Docker tag to v1.34.1to Update getmeili/meilisearch Docker tag to v1.34.225329509f2ab1da2ad08ab1da2ad088de8e9e5cfUpdate getmeili/meilisearch Docker tag to v1.34.2to Update getmeili/meilisearch Docker tag to v1.34.38de8e9e5cf8c7ccf0d37Update getmeili/meilisearch Docker tag to v1.34.3to Update getmeili/meilisearch Docker tag to v1.35.08c7ccf0d37e3537ec747e3537ec747b3486e910ab3486e910a9841a5890cUpdate getmeili/meilisearch Docker tag to v1.35.0to Update getmeili/meilisearch Docker tag to v1.35.19841a5890c6bf1ba8691Update getmeili/meilisearch Docker tag to v1.35.1to Update getmeili/meilisearch Docker tag to v1.36.06bf1ba86919c4924d4a8Update getmeili/meilisearch Docker tag to v1.36.0to Update getmeili/meilisearch Docker tag to v1.37.0Update getmeili/meilisearch Docker tag to v1.37.0to Update getmeili/meilisearch Docker tag to v1.38.09c4924d4a8ed9cbf35dfed9cbf35df99dba527abUpdate getmeili/meilisearch Docker tag to v1.38.0to Update getmeili/meilisearch Docker tag to v1.38.199dba527ab39d2c28f1cUpdate getmeili/meilisearch Docker tag to v1.38.1to Update getmeili/meilisearch Docker tag to v1.38.2View 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.