Description
This issue gathers the changes related to the v1.1.0 of Meilisearch that will impact the integrations team.
📅 Release date: April 3rd, 2023
The whole milestone of v1.1.0 is here!
tier #1
. Some of the features described here for tier #2
will also 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 | #1 |
Go | #1 |
Strapi | #2 |
Ruby | #2 |
Rails | #2 |
.NET | #2 |
Rust | #2 |
Symfony | #3 |
docs-searchbar.js | #3 |
Firebase | #3 |
Dart | #3 |
Java | #3 |
Swift | #3 |
Vuepress | #3 |
Gatsby | #3 |
Configure the CSV delimiter when updating documents
Related to:
- issue: Configure the CSV delimiter meilisearch#3442 and Update the error code of the csv delimiter meilisearch#3533
- spec: Documents API — Support a csv delimiter customization specifications#221
Add support for passing csvDelimiter
query parameter to the PUT
and POST
/indexes/:indexUid/documents
(example of the real method names: updateDocuments
, addDocuments
).
Also, a new error code
is introduced, invalid_document_csv_delimiter
. Pay attention to the strongly typed languages.
🤩 Affected integrations: All the integrations from tier #1
, and all the integrations from tier #2
that can process csv inputs.
Perform multiple searches in one single HTTP request
Related to:
- issue: Perform multiple searches in a single query meilisearch#3427
- spec: Multi Search API specifications#225
Create a new client method called multiSearch
/multi_search
, which will request POST /multi-search
with a body payload containing a structure similar to this:
{
"queries": [
{ "indexUid": "movie", "q": "wonder", "limit": 10 },
{ "indexUid": "books", "q": "king", "page": 2 }
]
}
Each object is a simple search object sent in the POST /indexes/:indexUid/search
request.
Pay attention to the response, which will follow the order of the requests object and will look like this (note the new indexUid
key in the response):
{
"results": [
{
"indexUid": "movie",
"hits": [ { "title": "wonderwoman" } ],
// other search results fields: processingTimeMs, limit, ...
},
{
"indexUid": "books",
"hits": [ { "title": "king kong theory" } ],
// other search results fields: processingTimeMs, limit, ...
},
]
}
🤩 Affected integrations: All the integrations from tier #1
, and all the integrations from tier #2
.
Allow usage of wildcards *
at the end of index names when creating tenant tokens & keys.
Related to:
- issue: Allow wildcard (
*
) at the end of the index names when creating tenant tokens meilisearch#2908 and Use wildcard (*
) at the end of the index names when creating API keys meilisearch#2788 - spec: API Keys - Introduce
*
wildcard char at the last position to express access to multiple indexes starting with the same string specifications#189 and API Keys - Introduce*
wildcard char at the last position to express access to multiple indexes starting with the same string specifications#189
Please only make sure the test suite is still working. Also, there is no need to add a new test case.
🤩 Affected integrations: All the integrations from tier #1
, tier #2
and tier #3
.
Add support for _geoBoundingBox
search filter.
Related to:
- issue: Improve geo-search: introduction of
_geoBoundingBox
meilisearch#2761 - spec: GeoSearch — Add the
_geoBoundingBox
built-in filter specifications#223
Add support for sending _geoBoundingBox
parameter to the filter
array parameter of the POST /indexes/:indexUid/search
(and also to POST /multi-search
) request.
Search request body example:
{ "q": "omega restaur", "filter": ["_geoBoundingBox([{lat, lng}], [{lat}, {lng}])"] }
🤩 Affected integrations: All the integrations from tier #1
.
Fix any possible workarounds regarding the support to null values in a geo
field
Related to:
- issue: Handle
"_geo": null
instead of throwing an error meilisearch#3497 - spec: Geosearch — Accept
null
for the_geo
field specifications#222
Affected client methods (e.g: updateDocuments
and addDocuments
).
When indexing documents with the geosearch enabled, sending a field set to null
is common if it does not have the location. (especially in strongly typed languages).
Currently, in v1.0, we throw an error if this happens, but now it is accepted as not geo-faceted.
Please only make sure the test suite is still working. Also, if the integration removed any workaround regarding the support of this situation, create a new test use case to cover the new behavior.
🤩 Affected integrations: All the integrations from tier #1
, tier #2
, and tier #3
(especially strongly typed ones or with support for optionals).
Add support for the new stats from numerical facets like min
, max
Related to:
- issue: Return stats for numerical facets like
min
,max
meilisearch#3426 - spec: Search API — Add
facetStats
description specifications#224
This feature will affect instant-meilisearch
more than any other integration. For the other integrations, make sure the test suite is still passing. And also if the SDK has a proper way to access the new facetStats
information.
And there is no need to add a new test use case for this feature. Only add a few assertions in the existing tests that use facets. If they exist, it will be enough.
🤩 Affected integrations: All the integrations from tier #1
.
Enable /metrics
experimental feature
Related to:
- issue: Experimental feature: Metrics meilisearch#3523
- spec: Metrics API — Introduce a
/metrics
route for observability / monitoring purposes specifications#174 - related: ServiceMonitor resource for Prometheus scraping meilisearch-kubernetes#153
Make it possible to access this experimental route data, through the Kubernetes chart, by introducing a new resource of a kind, ServiceMonitor
, from monitoring.coreos.com/v1
.
🤩 Affected integrations: Only meilisearch-kubernetes
.