Changes related to Meilisearch v1.13.0
This issue gathers the changes related to the v1.13.0 of Meilisearch that will impact the integrations scope.
📅 Release date: 17th February
Timelines & steps
Pre-release
- [x] With the help of the changelog & this CI, define which integrations should be updated and how (New feature? Update README? Update tests?)
- [x] Fill in the "What to implement?" section below in this issue 👇. Minial implementation: PHP, JS, meilisearch-js-plugins.
- [ ] Open implementation issues in repositories that need implementation if necessary for developers who will work on the tasks
- [x] Discuss with the Product team if needed. At least share this issue to let them know about the decisions.
- [x] Create a branch by running Octopus script: only open branches for the integrations we choose to update (defined in the previous step) + Kubernetes repository + Cloud provider repository (changing the version)
- [x] Update integrations according to the decisions (cf "What to implement?" section below in this issue 👇)
⚠️ If possible, this step is done before pre-release, once the feature is ready thanks to the prototype released by the engine team
- [x] JS
- [x] PHP
- [x] Dart
- [x] Go
- [x] Java
- [x] Python
- [x] Ruby
- [x] Rust
- [x] Add code samples for the chosen up-to-date integrations with the new version of Meilisearch
- [x] Update the library version of the related integrations and prepare the changelogs
Release day
- [ ] Release the integrations or only merge the related PRs (sometimes a release is not needed)
- [x] JS v0.49
- [x] PHP v1.13
- [x] meilisearch-js-plugins (at least update meilisearch-js version)
- [ ] Dart v0.17
- [x] Go v0.31
- [x] Python v0.34
- [x] Rust v0.28
- [x] Merge the related PR in K8s repository
- [x] Publish DevOps tools:
- [x] create the git tag
- [x] publish images (steps are in CONTRIBUTING.md)
- [ ] Remove useless AWS images (by using our internal script)
- [x] Open issues in the repositories that are not up-to-date with the latest version of Meilisearch (including code samples)
Post-release
- [X] Open issues post-release for stabilization of AI
- [ ] Update the following SDKs with the missing capabilities for AI search
- [ ] Java: https://github.com/meilisearch/meilisearch-java/issues/817
- [ ] Python: https://github.com/meilisearch/meilisearch-python/issues/1081
- [X] Ruby: https://github.com/meilisearch/meilisearch-ruby/issues/608
- [ ] Update JS and PHP with
- [ ] Remote federated search
- [ ]
usedDatabaseSize(stats) - [ ] Document Database (stats)
- [ ] Embedding database (stats)
What to implement?
AI stabilization
Related issue in the engine: https://github.com/meilisearch/meilisearch/issues/4733
Usage: https://meilisearch.notion.site/v1-13-AI-search-changes-17a4b06b651f80538b65d31724545def
- removal of the
vectorStoreexperimental feature - new error codes
TODO:
- [x] JS: remove vectorStore exp feature + fix tests
- [x] PHP: remove vectorStore exp feature + fix tests
- [x] Dart: Remove vector store experimental feature · Issue #409 · meilisearch/meilisearch-dart Why are tests not breaking?
- [x] Go: Remove vector store experimental feature · Issue #605 · meilisearch/meilisearch-go
- [x] Java: Remove vector store experimental feature · Issue #812 · meilisearch/meilisearch-java
- [x] Python: Remove vector store experimental feature · Issue #1077 · meilisearch/meilisearch-python
- [x] Ruby: Remove vector store experimental feature · Issue #605 · meilisearch/meilisearch-ruby
- [x] Rust: Remove vector store experimental feature · Issue #644 · meilisearch/meilisearch-rust
Postponed to v1.14.0
### Granular filterable attributes
Related issue in the engine: https://github.com/meilisearch/meilisearch/issues/5163
Usage: https://meilisearch.notion.site/API-usage-Settings-to-opt-out-indexing-features-filterableAttributes-1764b06b651f80aba8bdf359b2df3ca8?pvs=74
- accept the new formal of filterable attributes (the old one is still allowed)
TODO:
- [ ] JS: adapt code base + fix tests
- [ ] PHP: adapt code base + fix tests
Post release day - implement missing feature for vector store
Spec
- [ ]
embedderssetting. MethodsgetEmbedders,updateEmbedders,resetEmbedders. Also, the methodupdateSettingsshould be able to accept the newembeddersfield. Here is the list of the acceptable sub fields:- [ ]
sourcesub field is available and accepts:ollama,rest,openAI,huggingFaceanduserProvided - [ ]
apiKeysub field is available (string) - optional because not compatible with all sources. Only foropenAi,ollama,rest. - [ ]
modelsub field is available (string) - optional because not compatible with all sources. Only forollama,openAI,huggingFace - [ ]
documentTemplatesub field is available (string) - optional - [ ]
dimensions- optional because not compatible with all sources. Only foropenAi,huggingFace,ollama, andrest - [ ]
distribution- optional - [ ]
request- mandatory only if usingrestembedder - [ ]
response- mandatory only if usingrestembedder - [ ]
documentTemplateMaxBytes- optional - [ ]
revision- optional, only forhuggingFace - [ ]
headers- optional, only forrest - [ ]
binaryQuantized- optional
- [ ]
- [ ] Search
- [ ]
hybridsearch parameter, with sub fieldssemanticRatioandembedder.embedderis mandatory ifhybridis set. - [ ]
vectorparameter is available - [ ]
retrieveVectorsparameter available - [ ]
semanticHitCountin search response - [ ] Accept
_semanticScorein the search response (optional) - [ ]
vectorshould be returned in the search response, but optional (because depends on search parameters) - [ ]
_vectorsshould NOT be present in the search response
- [ ]
- [ ] Similar. Implement
searchSimilarDocumentsassociated with thePOST /indexes/:uid/similar. Do NOT implement withGET.
TODO
- [ ] Java
- [ ] Python
- [X] Ruby
Post-release: Remote federated search requests (exp)
Related issue in the engine: https://github.com/meilisearch/meilisearch/issues/4980
Usage: https://meilisearch.notion.site/API-usage-Remote-search-request-f64fae093abf409e9434c9b9c8fab6f3
- New
remoteroute - accept
remotesearch parameter in/multi-searchroute
TODO:
- [ ] JS: adapt code base + fix tests
- [ ] PHP: adapt code base + fix tests
Post-release: New usedDatabaseSize in /stats
Usage: https://github.com/meilisearch/meilisearch/issues/5318
- [ ] Accept the
usedDatabaseSizein the response of thegetStatsmethod
TODO
- [ ] JS
- [X] PHP: no need to change 🎉
Issue to open after the release: .NET, dart, go, Java, Rust, Swift (not Ruby, or Python)
Post-release: Add embbedings database metrics to stats route
Usage: https://github.com/meilisearch/meilisearch/issues/5321
- [ ] Accept
indexes.INDEXNAME.numberOfEmbeddedDocumentsin the response of thegetStatsmethod - [ ] Accept
indexes.INDEXNAME.numberOfEmbeddingsin the response of thegetStatsmethod
TODO
- [ ] JS
- [X] PHP: no need to change 🎉
Post-release (v1.13.1): Add documents database metrics to stats route
https://github.com/meilisearch/meilisearch/issues/5319
- [ ] Accept
indexes.INDEXNAME.rawDocumentDbSizein the response of thegetStatsmethod [ ] Acceptindexes.INDEXNAME.maxDocumentSizein the response of thegetStatsmethod- [ ] Accept
indexes.INDEXNAME.avgDocumentSizein the response of thegetStatsmethod
TODO
- [ ] JS
- [X] PHP: no need to change 🎉
Granular filterable attributes Related issue in the engine: https://github.com/meilisearch/meilisearch/issues/5163 Usage: https://meilisearch.notion.site/Opt-out-settings-v2-usage-15c4b06b651f8188ae57fca7aa73b527
accept the new formal of filterable attributes (the old one is still allowed)
@curquiza I don't think that notion link is correct.
Thank you, I changed
@Strift, the Granular filterable attributes feature will not be ready for v1.13.0, but will be done in v1.14.0 Just got the new from engine team, who had difficulties managing the flood of bugs and the sprint lately
How do we want to go about the rust integration? (I have not updated my PR to remove the experimental part, but can do so)
Kontext:
- https://github.com/meilisearch/meilisearch-rust/pull/554
These are the options
- [x] remove
ExperimentalFeatures::set_vector_store - [ ] mark
ExperimentalFeatures::set_vector_storeas deprecated and change to a no-op
And about reviewability:
- [ ] include in the same PR
- [x] make a new PR
There seems to be precedent for this @CommanderStorm
https://github.com/meilisearch/meilisearch-rust/commit/d12b21ba243afaad6ff4377a9f4aa0551dad787c
https://github.com/meilisearch/meilisearch-rust/pull/544
Looks like it was just removed (I suppose it was "experimental" after all). You know better though, of course doing something different could be appropriate in your case. Just thought I'd share.
Hey there, I opened the issues to track the missing 1.13 features in the relevant SDKs and closed the duplicate issues related to previous iterations of AI-powered search.
I guess we can close this issue @Strift, no?
We still have to merge https://github.com/meilisearch/meilisearch-java/pull/827, and then we'll be done 🥲