fix(deps): Update getmeili/meilisearch Docker tag to v1.12.1 #20069
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.1.0
->v1.12.1
Warning
Some dependencies could not be looked up. Check the Dependency Dashboard for more information.
Release Notes
meilisearch/meilisearch (getmeili/meilisearch)
v1.12.1
Compare Source
Fixes
There was a bug in the engine when adding an empty payload, it was making the batch fails.
Fixed by @irevoire in https://github.com/meilisearch/meilisearch/pull/5192
Full Changelog: meilisearch/meilisearch@v1.12.0...v1.12.1
v1.12.0
: 🦗Compare Source
Meilisearch v1.12 introduces significant indexing speed improvements, almost halving the time required to index large datasets. This release also introduces new settings to customize and potentially further increase indexing speed.
🧰 All official Meilisearch integrations (including SDKs, clients, and other tools) are compatible with this Meilisearch release. Integration deployment happens between 4 to 48 hours after a new version becomes available.
Some SDKs might not include all new features. Consult the project repository for detailed information. Is a feature you need missing from your chosen SDK? Create an issue letting us know you need it, or, for open-source karma points, open a PR implementing it (we'll love you for that ❤️).
New features and updates 🔥
Improve indexing speed
Indexing time is improved across the board!
The new indexer also makes task cancellation faster.
Done by @dureuill, @ManyTheFish, and @Kerollmops in #4900.
New index settings: use
facetSearch
andprefixSearch
to improve indexing speedv1.12 introduces two new index settings:
facetSearch
andprefixSearch
.Both settings allow you to skip parts of the indexing process. This leads to significant improvements to indexing speed, but may negatively impact search experience in some use cases.
Done by @ManyTheFish in #5091
facetSearch
Use this setting to toggle facet search:
The default value for
facetSearch
istrue
. When set tofalse
, this setting disables facet search for all filterable attributes in an index.prefixSearch
Use this setting to configure the ability to search a word by prefix on an index:
prefixSearch
accepts one of the following values:"indexingTime"
: enables prefix processing during indexing. This is the default Meilisearch behavior"disabled"
: deactivates prefix search completelyDisabling prefix search means the query
he
will no longer match the wordhello
. This may significantly impact search result relevancy, but speeds up the indexing process.New API route:
/batches
The new
/batches
endpoint allow you to query information about task batches.GET
/batches
returns a list of batch objects:curl -X GET 'http://localhost:7700/batches'
This endpoint accepts the same parameters as
GET
/tasks
route, allowing you to narrow down which batches you want to see. Parameters used withGET
/batches
apply to the tasks, not the batches themselves. For example,GET /batches?uid=0
returns batches containing tasks with ataskUid
of0
, not batches with abatchUid
of0
.You may also query
GET
/batches/:uid
to retrieve information about a single batch object:curl -X GET 'http://localhost:7700/batches/BATCH_UID'
/batches/:uid
does not accept any parameters.Batch objects contain the following fields:
Additionally, task objects now include a new field,
batchUid
. Use this field together with/batches/:uid
to retrieve data on a specific batch.Done by @irevoire in #5060, #5070, #5080
Other improvements
GET
/tasks
:reverse
. Ifreverse
is set totrue
, tasks will be returned in reversed order, from oldest to newest tasks. Done by @irevoire in #5048showMatchesPosition
set totrue
give a single location for the whole phrase @flevi29 in #4928indices
field to_matchesPosition
specifying which array elements contain the matches by @LukasKalbertodt in #5005vectorStore
change: field distribution no longer contains_vectors
. Its value used to be incorrect, and there is no current use case for the fixed, most likely empty, value. Done as part of #4900Fixes 🐞
attributesToSearchOn
in #5062 by @ManyTheFishMisc
delete_index.rs
by @DerTimonius in #4963create_index.rs
by @DerTimonius in #4962get_documents.rs
by @PedroTurik in #5025formatted.rs
by @PedroTurik in #5043❤️ Thanks again to our external contributors:
v1.11.3
: 🐿️Compare Source
What's Changed
Full Changelog: meilisearch/meilisearch@v1.11.2...v1.11.3
v1.11.2
: 🐿️Compare Source
What's Changed
Full Changelog: meilisearch/meilisearch@v1.11.1...v1.11.2
v1.11.1
: 🐿️Compare Source
What's Changed
Full Changelog: meilisearch/meilisearch@v1.11.0...v1.11.1
v1.11.0
: 🐿️Compare Source
Meilisearch v1.11 introduces AI-powered search performance improvements thanks to binary quantization and various usage changes, all of which are steps towards a future stabilization of the feature. We have also improved federated search usage following user feedback.
🧰 All official Meilisearch integrations (including SDKs, clients, and other tools) are compatible with this Meilisearch release. Integration deployment happens between 4 to 48 hours after a new version becomes available.
Some SDKs might not include all new features. Consult the project repository for detailed information. Is a feature you need missing from your chosen SDK? Create an issue letting us know you need it, or, for open-source karma points, open a PR implementing it (we'll love you for that ❤️).
New features and updates 🔥
Experimental - AI-powered search improvements
This release is Meilisearch's first step towards stabilizing AI-powered search and introduces a few breaking changes to its API. Consult the PRD for full usage details.
Done by @dureuill in #4906, #4920, #4892, and #4938.
hybrid.embedder
is now a mandatory parameter inGET
andPOST
/indexes/{:indexUid}/search
hybrid
even for pure semantic searchesembedder
is now a mandatory parameter inGET
andPOST
/indexes/{:indexUid}/similar
semanticRatio
and performs a pure semantic search for queries that includevector
but notq
Addition & improvements
text-embedding-3-small
instead oftext-embedding-ada-002
documentTemplateMaxBytes
. Meilisearch will truncate a document's template text when it goes over the specified limitdocumentTemplate
include a newfield.is_searchable
property. The default document template now filters out both empty fields and fields not in the searchable attributes list:v1.11:
v1.10:
Embedders using the v1.10 document template will continue working as before. The new default document template will only work with newly created embedders.
Vector database indexing performance improvements
v1.11 introduces a new embedder option,
binaryQuantized
:Enable binary quantization to convert embeddings of floating point numbers into embeddings of boolean values. This will negatively impact the relevancy of AI-powered searches but significantly improve performance in large collections with more than 100 dimensions.
In our benchmarks, this reduced the size of the database by a factor of 10 and divided the indexing time by a factor of 6 with little impact on search times.
Done by @irevoire in #4941.
Federated search improvements
Facet distribution and stats for federated searches
This release adds two new federated search options,
facetsByIndex
andmergeFacets
. These allow you to request a federated search for facet distributions and stats data.Facet information by index
To obtain facet distribution and stats for each separate index, use
facetsByIndex
when querying thePOST
/multi-search
endpoint:The multi-search response will include a new field,
facetsByIndex
with facet data separated per index:Merged facet information
To obtain facet distribution and stats for all indexes merged into a single, use both
facetsByIndex
andmergeFacets
when querying thePOST
/multi-search
endpoint:The response includes two new fields,
facetDistribution
andfacetStarts
:Done by @dureuill in #4929.
Experimental — New
STARTS WITH
filter operatorEnable the experimental feature to use the
STARTS WITH
filter operator:Use the
STARTS WITH
operator when filtering:🗣️ This is an experimental feature, and we need your help to improve it! Share your thoughts and feedback on this GitHub discussion.
Done by @Kerollmops in #4939.
Other improvements
Fixes 🐞
query.facets
was silently ignored at the query level, but should not have been. It now returns the appropriate error. Usefederation.facetsByIndex
instead if you want facets to be applied during federated search./metrics
return the route pattern instead of the real route when returning the HTTP requests total by @irevoire in #4839maxValuesPerFacet
. For example, settingmaxValuesPerFacet
to2
could result in["blue", "red", "yellow"]
, being truncated to["blue", "yellow"]
instead of ["blue", "red"]`. By @dureuill in #4929å
,ä
,ö
are no longer normalized toa
ando
. By @ManyTheFish in #4945Misc
❤️ Thanks again to our external contributors:
v1.10.3
: 🦩Compare Source
Search improvements
This PR lets you configure two behaviors of the engine through experimental cli flags:
--experimental-nb-searches-per-core
cli flag--experimental-drop-search-after
cli flagDone by @irevoire in https://github.com/meilisearch/meilisearch/pull/5000
Full Changelog: meilisearch/meilisearch@v1.10.2...v1.10.3
v1.10.2
: 🦩Compare Source
Fixes 🦋
Activate the Swedish tokenization Pipeline
The Swedish tokenization pipeline were deactivated in the previous versions, now it is activated when specifying the index Language in the settings:
PATCH
/indexes/:index-name/settings
related PR: #4949
v1.10.1
: 🦩Compare Source
Fixes 🦋
Better search handling under heavy loads
All of the next PR should make meilisearch behave better under heavy loads:
Speed improvement 🐎
We made the autobatching of the document deletion with the document deletion by filter possible which should uncklog the task queue of the people using these two operations heavily.
Meilisearch still cannot autobatch the document deletion by filter and the document addition, though.
Full Changelog: meilisearch/meilisearch@v1.10.0...v1.10.1
v1.10.0
: 🦩Compare Source
Meilisearch v1.10 introduces federated search. This innovative feature allows you to receive a single list of results for multi-search requests. v1.10 also includes a setting to manually define which language or languages are present in your documents, and two new new experimental features: the
CONTAINS
filter operator and the ability to update a subset of your dataset with a function.🧰 All official Meilisearch integrations (including SDKs, clients, and other tools) are compatible with this Meilisearch release. Integration deployment happens between 4 to 48 hours after a new version becomes available.
Some SDKs might not include all new features. Consult the project repository for detailed information. Is a feature you need missing from your chosen SDK? Create an issue letting us know you need it, or, for open-source karma points, open a PR implementing it (we'll love you for that ❤️).
New features and updates 🔥
Federated search
Use the new
federation
setting of the/multi-search
route to return a single search result object:Response:
When performing a federated search, Meilisearch merges the results coming from different sources in descending ranking score order.
If
federation
is empty ({}
), Meilisearch setsoffset
andlimit
to 0 and 20 respectively.If
federation
isnull
or missing, multi-search returns one list of search result objects for each index.Federated results relevancy
When performing federated searches, use
federationOptions
in the request'squeries
array to configure the relevancy and the weight of each index:federationOptions
must be an object. It supports a single field,weight
, which must be a positive floating-point number:weight
<1.0
, results from this index are less likely to appear in the resultsweight
>1.0
, results from this index are more likely to appear in the resultsweight
defaults to1.0
📖 Consult the usage page for more information about the merge algorithm.
Done by @dureuill in #4769.
Experimental:
CONTAINS
filter operatorEnable the
containsFilter
experimental feature to use theCONTAINS
filter operator:CONTAINS
filters results containing partial matches to the specified string, similar to a SQLLIKE
:🗣️ This is an experimental feature, and we need your help to improve it! Share your thoughts and feedback on this GitHub discussion.
Done by @irevoire in #4804.
Language settings
Use the new
localizedAttributes
index setting and thelocales
search parameter to explicitly set the languages used in document fields and the search query itself. This is particularly useful for <=v1.9 users who have to occasionally resort to alternative Meilisearch images due to language auto-detect issues in Swedish and Japanese datasets.Done by @ManyTheFish in #4819.
Set language during indexing with
localizedAttributes
Use the newly introduced
localizedAttributes
setting to explicitly declare which languages correspond to which document fields:locales
is a list of ISO-639-3 language codes to assign to a pattern. The currently supported languages are:epo
,eng
,rus
,cmn
,spa
,por
,ita
,ben
,fra
,deu
,ukr
,kat
,ara
,hin
,jpn
,heb
,yid
,pol
,amh
,jav
,kor
,nob
,dan
,swe
,fin
,tur
,nld
,hun
,ces
,ell
,bul
,bel
,mar
,kan
,ron
,slv
,hrv
,srp
,mkd
,lit
,lav
,est
,tam
,vie
,urd
,tha
,guj
,uzb
,pan
,aze
,ind
,tel
,pes
,mal
,ori
,mya
,nep
,sin
,khm
,tuk
,aka
,zul
,sna
,afr
,lat
,slk
,cat
,tgl
,hye
.attributePattern
is a pattern that can start or end with a*
to match one or several attributes.If an attribute matches several rules, only the first rule in the list will be applied. If the locales list is empty, then Meilisearch is allowed to auto-detect any language in the matching attributes.
These rules are applied to the
searchableAttributes
, thefilterableAttributes
, and thesortableAttributes
.Set language at search time with
locales
The
/search
route accepts a new parameter,locales
. Use it to define the language used in the current query:The
locales
parameter overrides eventuallocales
in the index settings.Experimental: Edit documents with a Rhai function
Use a Rhai function to edit documents in your database directly from Meilisearch:
First, activate the experimental feature:
Then query the
/documents/edit
route with the editing function:/documents/edit
accepts three parameters in its payload:function
,filter
, andcontext
.function
must be a string with a Rhai function.filter
must be a filter expression..context
must be an object with data you want to make available for the editing function.📖 More information here.
🗣️ This is an experimental feature and we need your help to improve it! Share your thoughts and feedback on this GitHub discussion.
Done by @Kerollmops in #4626.
Experimental AI-powered search: quality of life improvements
For the purpose of future stabilization of the feature, we are applying changes and quality-of-life improvements.
Done by @dureuill in #4801, #4815, #4818, #4822.
The old parameters of the REST API are too numerous and confusing.
Removed parameters:
query
,inputField
,inputType
,pathToEmbeddings
andembeddingObject
.Replaced by:
request
: A JSON value that represents the request made by Meilisearch to the remote embedder. The text to embed must be replaced by the placeholder value“{{text}}”
.response
: A JSON value that represents a fragment of the response made by the remote embedder to Meilisearch. The embedding must be replaced by the placeholder value"{{embedding}}"
.Before:
Upgrade procedure:
"rest"
Add custom headers to REST embedders
When the
source
of an embedder is set torest
, you may include an optionalheaders
parameter. Use this to configure custom headers you want Meilisearch to include in the requests it sends the embedder.Embedding requests sent from Meilisearch to a remote REST embedder always contain two headers:
Authorization: Bearer <apiKey>
(only ifapiKey
was provided)Content-Type: application/json
When provided,
headers
should be a JSON object whose keys represent the name of additional headers to send in requests, and the values represent the value of these additional headers.If
headers
is missing ornull
for arest
embedder, onlyAuthorization
andContent-Type
are sent, as described above.If
headers
containsAuthorization
andContent-Type
, the declared values will override the ones that are sent by default.Using the
headers
parameter for any othersource
besidesrest
results in aninvalid_settings_embedder
error.Other quality-of-life improvements
📖 More details here
url
parameter to the OpenAI embedder.url
should be an URL to the embedding endpoint (including the v1/embeddingspart) from OpenAI. Ifurl
is missing ornull
for anopenAi
embedder, the default OpenAI embedding route will be used (https://api.openai.com/v1/embeddings).dimensions
is now available as an optional parameter forollama
embedders. Previously it was only available for rest,openAi
anduserProvided
embedders._vectors.embedder
was omitted for documents without at least one embedding forembedder
. This was inconsistent and prevented the user from checking the value ofregenerate
.Because the GitHub Actions runner now enforces the usage of a Node version that is not compatible with Ubuntu 18.04 anymore, we had to upgrade the minimal Ubuntu version compatible with Meilisearch. Indeed, we use these GitHub actions to build and provide our binaries.
Now, Meilisearch is only compatible with Ubuntu 20.04 and later and not with Ubuntu 18.4 anymore.
Done by @curquiza in #4783.
Other improvements
ERROR
by @dureuill in #4835Fixes 🐞
OffsetDateTime
: use a fixed date format regardless of features by @dureuill in #4850Misc
vX
Docker tag when publishing Docker image by @curquiza in #4761MEILI_NO_VERGEN
env var to skip vergen by @dureuill in #4812❤️ Thanks again to our external contributors:
v1.9.1
: 🦎Compare Source
Fixes 🪲
This fixes an issue where dumps created for indexes with:
would fail to import correctly.
Upgrade path to v1.10.0 🚀
If you are a Cloud user affected by the above issue, please contact customer support so we perform the upgrade for you.
If you are an OSS user affected by the above, perform the following operations:
Full Changelog
v1.9.0
: 🦎Compare Source
Meilisearch v1.9 includes performance improvements for hybrid search and the addition/updating of settings. This version benefits from multiple requested features, such as the new
frequency
matching strategy and the ability to retrieve similar documents.🧰 All official Meilisearch integrations (including SDKs, clients, and other tools) are compatible with this Meilisearch release. Integration deployment happens between 4 to 48 hours after a new version becomes available.
Some SDKs might not include all new features. Consult the project repository for detailed information. Is a feature you need missing from your chosen SDK? Create an issue letting us know you need it, or, for open-source karma points, open a PR implementing it (we'll love you for that ❤️).
New features and updates 🔥
Hybrid search updates
This release introduces multiple hybrid search updates.
Done by @dureuill and @irevoire in #4633 and #4649
_vectors.embedder
arraysEmpty
_vectors.embedder
arrays are now interpreted as having no vector embedding.Before v1.9, Meilisearch interpreted these as a single embedding of dimension 0. This change follows user feedback that the previous behavior was unexpected and unhelpful.
_vectors
field no longer present in search resultsWhen the experimental
vectorStore
feature is enabled, Meilisearch no longer includes_vectors
in returned search results by default. This will considerably improve performance.Use the new
retrieveVectors
search parameter to display the_vectors
field:_vectors
In order to save storage and run faster, Meilisearch is no longer storing your vector "as-is". Meilisearch now returns the float in a canonicalized representation rather than the user-provided representation.
For example,
3
may be represented as3.0
Document
_vectors
accepts object valuesThe document
_vectors
field now accepts objects in addition to embedding arrays:The
_vectors
object may contain two fields:embeddings
andregenerate
.If present,
embeddings
will replace this document's embeddings.regenerate
must be eithertrue
orfalse
. Ifregenerate: true
, Meilisearch will overwrite the document embeddings each time the document is updated in the future. Ifregenerate: false
, Meilisearch will keep the last provided or generated embeddings even if the document is updated in the future.This change allows importing embeddings to autoembedders as a one-shot process, by setting them as
regenerate: true
. This change also ensures embeddings are not regenerated when importing a dump created with Meilisearch v1.9.Meilisearch v1.9.0 also improves performance when indexing and using hybrid search, avoiding useless operations and optimizing the important ones.
New feature: Ranking score threshold
Use
rankingScoreThreshold
to exclude search results with low ranking scores:Meilisearch does not return any documents below the configured threshold. Excluded results do not count towards
estimatedTotalHits
,totalHits
, and facet distribution.rankingScoreThreshold
is higher thanlimit
, Meilisearch does not evaluate the ranking score of the remaining documents. Results ranking below the threshold are not immediately removed from the set of candidates. In this case, Meilisearch may overestimate the count ofestimatedTotalHits
,totalHits
and facet distribution.Done by @dureuill in #4666
New feature: Get similar documents endpoint
This release introduces a new AI-powered search feature allowing you to send a document to Meilisearch and receive a list of similar documents in return.
Use the
/indexes/{indexUid}/similar
endpoint to query Meilisearch for related documents:id
: string indicating the document needing similar results, requiredoffset
: number of results to skip when paginating, optional, defaults to0
limit
: number of results to display, optional, defaults to20
filter
: string with a filter expression Meilisearch should apply to the results, optional, defaults tonull
embedder
: string indicating the embedder Meilisearch should use to retrieve similar documents, optional, defaults to"default"
attributesToRetrieve
: array of strings indConfiguration
📅 Schedule: Branch creation - "before 4am on the first day of the month" (UTC), 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.