meilisearch/integration-guides

Changes regarding Meilisearch v1.3.0

Closed this issue · 4 comments

This issue gathers the changes related to the v1.3.0 of Meilisearch that will impact the integrations team.

📅 Release date: July 31th, 2023

The whole milestone of v1.3.0 is here!

⚠️ The SDKs, which should be done by the release date, are only tier #1. Some of the features described may be done for tier #2 but will not be ready for the release day. Check the features below to understand which tier will receive which feature.

🖖 Click here to check the current tiers state of the integrations:
Understand everything about tiers here.

Integration Tier
Javascript #1
PHP #1
Instant Meilisearch #1
Python #2
Ruby #2
Go #2
Strapi #2
.NET #2
Rails #2
Rust #2
Symfony #3
Java #3
Firebase #3
docs-searchbar.js #3
Dart #3
Swift #3
Vuepress #3
Gatsby #3

⚠️ If no change in the public API is added during the bump pull requests, there is no need for a new release, according to the Integrations team's versioning policy guideline.

⚠️ A disclaimer about labeled EXPERIMENTAL features:

To ensure we still deliver stability to our users and have ways to innovate. Meilisearch has a way to opt-in for experimental features. The user must query a particular route and enable/disable those features.
The SDKs receiving the experimental features will likely change soon (a.k.a: breaking changes), which will not trigger a major version update.
So, before adopting a experimental feature, be sure what you're doing.


tiers - #1 [EXPERIMENTAL] Vector Store

Related to:

It allows the user to store dense vectors to be retrieved later during search time.

What needs to be changed:

  • Ensure sending the vector key during the search works: client.index('myindex').search('query', { vector: [0.1, ...] })
  • Ensure it is possible to send during the data ingestion the _vectors special field in the documents: client.index('myindex').add_documents({ _vectors: [0.1, ...] })
  • The response can contain a vector key similar to the q key.

⚠️ This feature is enabled by querying PATCH /experimental-features with { "vectorStore": true }

Extra: Add inline documentation for the method, explaining the availability of this feature only for Meilisearch v1.3 and newer. And that is also an experimental feature that needs to be opt-in manually using the /experimental-features meilisearch/meilisearch#3857 endpoint.

🤩 Affected integrations: All the integrations from tier #1 and tier #2 (Python).


tiers - #1 Define fields to search on at search-time

Related to:

Add support for receiving a new key, attributesToSearchOn (which is an array of field names), that will enable running searches over a subset of searchableAttributes without modifying Meilisearch’s index settings.

🤩 Affected integrations: All the integrations from tier #1.


tiers - #1 Display hits' ranking scores

Related to:

This feature aims to return ranking details for each document to understand and tweak the score of the documents more efficiently.

Ensure the SDKs can handle the new search parameter showRankingScore. Also, ensure the SDK can handle the _rankingScore attribute in the matched hits.

🤩 Affected integrations: All the integrations from tier #1.


tiers - #1 [EXPERIMENTAL] Display ranking details at search

Related to:

This feature aims to return ranking details for each document to understand and tweak the score of the documents more easily.

Ensure the SDKs can handle the new search parameter showRankingScoreDetails. Also ensure the SDK can handle the _rankingScoreDetails attributes in the matched hits.

⚠️ This feature is enabled by querying PATCH /experimental-features with { "scoreDetails": true }

Extra: Add inline documentation for the method, explaining the availability of this feature only for Meilisearch v1.3 and newer. And that is also an experimental feature that must be manually opt-in using the /experimental-features meilisearch/meilisearch#3857 endpoint.

🤩 Affected integrations: All the integrations from tier #1.


tiers - #1 Sort facets value by alphanumerical or count order

Related to:

Adds the ability to sort facets by their value which could be by using alpha or count.

Ensure the SDKs can handle the new index faceting configuration attribute sortFacetValuesBy. This enum could only take count or alpha.

The faceting configuration now have two attributes:

maxValuesPerFacet: integer
sortFacetValuesBy: object 
  index_name: alpha|count
  *: alpha|count // when should be applied to all indexes

🤩 Affected integrations: All the integrations from tier #1.


tiers - #1 Search in facet values

Related to:

Users of bigger datasets could have difficulty interacting with vast lists of facets data since, until today, it was not possible to search on them.

To introduce this feature into the SDKs, we must:

Create a new method called facetSearch(facetSearchQuery)/facet_search(facetSearchQuery)
Besides all the other parameters that a regular SearchQuery can take. The new FacetSearchQuery can take a facetName, facetQuery, filter, q, matchingStrategy.

Params definition:

facetName:
  type: string
  required: true
  example: '"genres"'
facetQuery:
  type: string
  example: '"Horror"'
q:
  type: string
  default: '""'
  example: '"Back to the future"'
matchingStrategy:
  type: string
  default: 'last'
filter: // https://www.meilisearch.com/docs/learn/fine_tuning_results/filtering
  type: array
  example: '"groupId = 1 AND genre = adventure"'

🤩 Affected integrations: All the integrations from tier #1.


tiers - #1 Total Tasks in task route

Related to:

Returns the total number of tasks matching the filters on the GET /tasks route.

Ensure the SDKs can handle the new get tasks response field total.

🤩 Affected integrations: All the integrations from tier #1.

Code-samples: #282

Missing issues to be opened in the non-updated SDKs before closing this issue

Yes @curquiza that's correct!

I am closing this issue since all the missing features are now tracked into each SDK.

Thanks, team! 🦖 🎉