v1.15.2 🦘
This patch release introduces a major fix and some minor fixes.
Some searchable fields were removed from the searchable databases when the were removed from the filterableAttributes
setting. This made them unsearchable despite the fact they were still precised in the searchableAttributes
setting. This will no more append in versions >=1.15.2.
Fixed by @ManyTheFish in https://github.com/meilisearch/meilisearch/pull/5660
- Fix chat route missing base URL and Mistral error handling by @Kerollmops in https://github.com/meilisearch/meilisearch/pull/5665
- Various fixes to embedding regeneration by @dureuill in https://github.com/meilisearch/meilisearch/pull/5668
v1.15.1 🦘
Meilisearch v1.15.1 adds new experimental conversational features and enables LLM-driven chat features.
🧰 All official Meilisearch integrations (including SDKs, clients, and other tools) are compatible with this Meilisearch release. Integration deployment takes 4 to 48 hours after a new version becomes available.
Some SDKs might not include all new features. Please look over 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 ❤️).
After enabling the experimental chat feature, you can create a chat workspace with the appropriate settings. We have a guide on how to set up a good chat interface for your indexes.
curl -X POST 'http://localhost:7700/chats/my-assistant/settings' \
-H 'Content-Type: application/json' \
-d '{
"source": "OpenAi",
"apiKey": "sk-abc..."
}'
Then by using the official OpenAI SDK you'll be able to chat with your indexes.
import OpenAI from 'openai';
const client = new OpenAI({
baseURL: 'http://localhost:7700/chats/my-assistant',
apiKey: 'YOUR_MEILISEARCH_CHAT_API_KEY',
});
const completion = await client.chat.completions.create({
model: 'gpt-3.5-turbo',
messages: [{ role: 'user', content: 'What is Meilisearch?' }],
stream: true,
});
for await (const chunk of completion) {
console.log(chunk.choices[0]?.delta?.content || '');
}
Done by @Kerollmops in #5556.
v1.15.0 🦘
Meilisearch v1.15 adds a new typo tolerance setting, allowing you to disable typo tolerance for numbers. It also enables comparison operators for string filters.
🧰 All official Meilisearch integrations (including SDKs, clients, and other tools) are compatible with this Meilisearch release. Integration deployment takes 4 to 48 hours after a new version becomes available.
Some SDKs might not include all new features. Please look over 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 ❤️).
Set typoTolerance.disableOnNumbers
to true
to disable typo tolerance for numbers:
curl -X POST 'http://localhost:7700/indexes/movies/settings' \
-H 'Content-Type: application/json' \
-d '{
"typoTolerance": {"disableOnNumbers": true}
}'
Deactivating the typo tolerance on numbers can be helpful when trying to reduce false positives, such as a query term 2024
returning results that include 2025
and 2004
. It may also improve indexing performance.
Done by @ManyTheFish in #5494.
This release allows you to filter strings lexicographically by enabling comparison operators (<, <=, >, >=, TO) on string values:
curl -X POST 'http://localhost:7700/indexes/movies/search' \
-H 'Content-Type: application/json' \
-d '{
"filter": "release_date >= '2024-06'"
}'
This new feature can be particularly useful when filtering human-readable dates.
Done by @dureuill in #5535.
- Allows cancelling an upgrade to a new Meilisearch version by rolling back all upgraded indexes by @dureuill in #5523
- Support EC private key as SSL certificate by @HDT3213 in #5471
- When passing the relevant CLI option, stop compacting snapshots, to speed up their generation by @dureuill and @irevoire in #5498 and #5560
- Add new
batchStrategy
field in the batches stats by @dureuill in #5488, #5530, and #5588 - Add log field tracking time spent searching in the vector store by @Kerollmops in #5525
- Improve filterable error messages by @CodeMan62 in #5425
- Improve error messages on embeddings dimension mismatch by @vuthanhtung2412 in #5449
- Update
/network
URL validation error message format by @CodeMan62 in #5486 - Expose the task queue's status size in the Prometheus metrics by @DanasFi in #5512
- Fix
_matchesPosition
length calculation to improve client-side cropping by @shaokeyibb in #5446 - Fix
_geo
ranking rule by @HDT3213 in #5487 - Fix a panic in the search that could happen when looking for typos with a search prefix having more than 65k possible hits in the DB by @dureuill in #5564
- Make sure that passing
MEILI_EXPERIMENTAL_MAX_NUMBER_OF_BATCHED_TASKS
to 0 results in Meilisearch never processing any kind of task. By @irevoire in #5565 - Forbid value
0
formaxTotalHits
in the index settings by @irevoire in #5566 - No longer reject
documentTemplate
s that use array filters on documents (e.g.join
) by @dureuill in #5593
- Dependency updates
- CIs and tests
- Misc
❤️ Thanks again to our external contributors:
- Meilisearch: @shu-kitamura, @shaokeyibb, @CodeMan62, @vuthanhtung2412, @HDT3213, @DanasFi, and @ZeroZ-lab.
- Charabia: @luflow, @mosuka, and @HDT3213.
- RoaringBitmap: @lucascool12 and @Dr-Emann.
v1.15.0-rc.4 🦘
[!WARNING] Since this is a release candidate (RC), we do NOT recommend using it in a production environment. Is something not working as expected? We welcome bug reports and feedback about new features.
- Minor fixes: Deactivate numbers in typos by @ManyTheFish in https://github.com/meilisearch/meilisearch/pull/5541
- Remove TemplateChecker by @dureuill in https://github.com/meilisearch/meilisearch/pull/5593
- Adapt tests to the Chinese word segmenter changes by @ManyTheFish in https://github.com/meilisearch/meilisearch/pull/5630
- update Charabia to the latest version by @ManyTheFish in https://github.com/meilisearch/meilisearch/pull/5630
Full Changelog: https://github.com/meilisearch/meilisearch/compare/v1.15.0-rc.3...v1.15.0-rc.4
v1.15.0-rc.3 🦘
[!WARNING] Since this is a release candidate (RC), we do NOT recommend using it in a production environment. Is something not working as expected? We welcome bug reports and feedback about new features.
- Only intern in case of typo when looking for one or two typoes by @CodeMan62 in https://github.com/meilisearch/meilisearch/pull/5573
- Update charabia v0.9.5 by @ManyTheFish in https://github.com/meilisearch/meilisearch/pull/5557
- Rename batch creation complete by @dureuill in https://github.com/meilisearch/meilisearch/pull/5588
- Fix another derivation-related panic in the search by @dureuill in https://github.com/meilisearch/meilisearch/pull/5587
Full Changelog: https://github.com/meilisearch/meilisearch/compare/v1.15.0-rc.2...v1.15.0-rc.3
v1.15.0-rc.2 🦘
[!WARNING] Since this is a release candidate (RC), we do NOT recommend using it in a production environment. Is something not working as expected? We welcome bug reports and feedback about new features.
This release fixes a docker deployment issue (by @dureuill in https://github.com/meilisearch/meilisearch/pull/5577) but is otherwise identical to RC 1
v1.15.0-rc.1 🦘
[!WARNING] Since this is a release candidate (RC), we do NOT recommend using it in a production environment. Is something not working as expected? We welcome bug reports and feedback about new features.
- Fix a panic in the search that could happen when looking for typos with a search prefix having more than 65k possible hits in the DB: Only intern in case of single-typo when looking for single typoes by @dureuill in https://github.com/meilisearch/meilisearch/pull/5564
- Make sure that passing
MEILI_EXPERIMENTAL_MAX_NUMBER_OF_BATCHED_TASKS
to 0 results in Meilisearch never processing any kind of task. By @irevoire in https://github.com/meilisearch/meilisearch/pull/5565 - Forbid value
0
formaxTotalHits
in the index settings by @irevoire in https://github.com/meilisearch/meilisearch/pull/5566
- Snapshot compaction is enabled again by default, with an experimental CLI flag to disable the compaction manually. By @irevoire in https://github.com/meilisearch/meilisearch/pull/5560
v1.15.0-rc.0 🦘
[!WARNING] Since this is a release candidate (RC), we do NOT recommend using it in a production environment. Is something not working as expected? We welcome bug reports and feedback about new features.
Meilisearch v1.15 adds a new typo tolerance setting, allowing you to disable typo tolerance for numbers. It also enables comparison operators for string filters.
🧰 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 ❤️).
Set typoTolerance.disableOnNumbers
to true
to disable typo tolerance for numbers:
curl -X POST 'http://localhost:7700/indexes/movies/settings' \
-H 'Content-Type: application/json' \
-d '{
"typoTolerance": {"disableOnNumbers": true}
}'
Deactivating the typo tolerance on numbers can be useful when trying to reduce false positives, such as a query term 2024
returning results that include 2025
and 2004
. It may also improve indexing performance.
Done by @ManyTheFish in #5494.
This release allows you to filter strings lexicographically by enabling comparison operators (<, <=, >, >=, TO) on string values:
curl -X POST 'http://localhost:7700/indexes/movies/search' \
-H 'Content-Type: application/json' \
-d '{
"filter": "release_date >= '2024-06'"
}'
This new feature can be particularly useful when filtering human-readable dates.
Done by @dureuill in #5535.
- Allows cancelling an upgrade to a new Meilisearch version by rolling back all upgraded indexes by @dureuill in #5523
- Support EC private key as SSL certificate by @HDT3213 in #5471
- Stop compacting snapshots to speed up their generation by @dureuill in #5498
- Add new
batchCreationComplete
field in the batches stats by @dureuill in #5488 and #5530 - Add log field tracking time spent searching in the vector store by @Kerollmops in #5525
- Improve filterable error messages by @CodeMan62 in #5425
- Improve error messages on embeddings dimension mismatch by @vuthanhtung2412 in #5449
- Update
/network
URL validation error message format by @CodeMan62 in #5486 - Expose the task queue's status size in the Prometheus metrics by @DanasFi in #5512
- Fix
_matchesPosition
length calculation to improve client-side cropping by @shaokeyibb in #5446 - Fix
_geo
ranking rule by @HDT3213 in #5487
- Dependencies updates
- CIs and tests
- Misc
❤️ Thanks again to our external contributors:
- Meilisearch: @shu-kitamura, @shaokeyibb, @CodeMan62, @vuthanhtung2412, @HDT3213, @DanasFi, and @ZeroZ-lab.
v1.14.0 🦫
Meilisearch v1.14 gives more granular control over which parts of filters you can disable for indexing performance optimization. This release also includes composite embedders, which can improve embedding generation during search and indexing, and a new route to retrieve multiple documents by their IDs.
🧰 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 ❤️).
v1.14 gives you more control over which types of filter you want to disable in your searches. This allows you to further optimize indexing speeds by letting you activate only the filter features you need.
Use PATCH /indexes/INDEX_NAME/settings
to specify which filters you want to enable for each attribute in your documents:
{
"filterableAttributes": [
{
"attributePatterns": ["genre", "artist"],
"features": {
"facetSearch": true,
"filter": {
"equality": true,
"comparison": false
}
}
},
{
"attributePatterns": ["rank"],
"features": {
"facetSearch": false,
"filter": {
"equality": true,
"comparison": true
}
}
}
]
}
For more details about this feature, please refer to its public usage page
Done by @ManyTheFish in #5254.
This feature allows using different embedders at search and indexing time. This can be useful when optimizing AI-powered search performance. For example, you may prefer to use:
- A remote embedder during indexing, as remote embedders have higher bandwidth and can generate more embeddings per second
- A local embedder when answering to search queries, as local embedders have lower latency and can respond more quickly to user input
To use the feature, follow these steps:
- Enable the
Composite embedders
feature with the Meilisearch Cloud interface, or with the/experimental-features
route:
curl MEILISEARCH_URL/experimental-features \
-H 'Content-Type: application/json' \
-d '{"compositeEmbedders": true}'
- Next, create an embedder, setting its
source
to"composite"
and defining onesearchEmbedder
and oneindexingEmbedder
:
- Once the composite embedder has been created, Meilisearch will use its
indexingEmbedder
during indexing andsearchEmbedder
when responding to user queries
For more details about this feature, please refer to its public usage page.
Done by @dureuill in #5371 and #5401.
It is now possible to retrieve multiple documents by their IDs:
curl -H 'Content-Type: application/json' MEILISEARCH_URL/indexes/INDEX_UID/documents -d '{ "ids": ["cody", "finn", "brandy", "gambit"] }'
{
"results": [
{
"id": "brandy",
"info": 13765493
},
{
"id": "finn",
"info": 35863
},
{
"id": "cody",
"info": 122263
},
{
"id": "gambit",
"info": 22222
}
],
"offset": 0,
"limit": 20,
"total": 4
}
[!WARNING] Documents are not returned in the queried order. Non-existent documents are ignored.
Done by @dureuill in #5384.
- Batch together
/documents
requests using eitherPUT
orPOST
by @Kerollmops in #5293 - Display timestamped internal indexing steps on the
/batches
route by @Kerollmops in #5356 and #5364 - Introduce
exhaustiveFacetCount
parameter to/facet-search
route to retrieve an exhaustive facet count by @ManyTheFish in #5369 - Reduce RAM consumption of arroy by @irevoire in https://github.com/meilisearch/arroy/pull/105
- Experimental feature: Cache embeddings during search (Read more in the feature discussion) by @dureuill in #5418
- Extend batch progress view to include indexing of vectors by @irevoire in #5420
- Armenian characters are no longer case-sensitive by @ManyTheFish in https://github.com/meilisearch/meilisearch/pull/5454
- Avoid reindexing searchables when the order changes by @ManyTheFish in https://github.com/meilisearch/meilisearch/pull/5402
- Accept cancellation tasks even when the disk is full by @irevoire in https://github.com/meilisearch/meilisearch/pull/5492
- Geo update bug by @ManyTheFish in https://github.com/meilisearch/meilisearch/pull/5407
- Fix prefix search on attributes listed in
disabledOnAttributes
settings by @ManyTheFish in https://github.com/meilisearch/meilisearch/pull/5415 (fixes #5347 and #5452) - Fix CI to work with merge queues by @Kerollmops in https://github.com/meilisearch/meilisearch/pull/5456
- Support fetching the pooling method from the model configuration by @dureuill in #5355
- Delete unused prefixes by @Kerollmops in #5413
- Fixes mini dashboard to prevent the panel from popping up every time by @curquiza in https://github.com/meilisearch/meilisearch/pull/5436
- Enabling
rankingScoreThreshold
no longer causes_rankingScore
to be miscalculated by @barloes and @dureuill in https://github.com/meilisearch/meilisearch/pull/5313 - Validate dimensions of embedding when receiving documents with
_vectors
by @dureuill in https://github.com/meilisearch/meilisearch/pull/5478
- Dependencies updates
- Bump Ubuntu in the CI from 20.04 to 22.04 by @Kerollmops in #5338
- Bump heed to v0.22 by @irevoire and @Kerollmops in #5406
- Bump ring to v0.17.14 to compile on old aarch64 by @Kerollmops in https://github.com/meilisearch/meilisearch/pull/5423
- Bump zip from 2.2.2 to 2.3.0 by @dependabot in https://github.com/meilisearch/meilisearch/pull/5426
- CIs and tests
- Improve test performance of get_index.rs by @DerTimonius in #5210
- Ollama Integration Tests by @Kerollmops in #5308
- Ensure the settings routes are properly configured when a new field is added to the Settings struct by @MichaScant in #5149
- Skip a snapshot test on Windows by @Kerollmops in #5383
- Fix CI to work with merge queues by @Kerollmops in https://github.com/meilisearch/meilisearch/pull/5456
- Accept total batch size in human size by @Kerollmops in https://github.com/meilisearch/meilisearch/pull/5421
- Add more progress levels to measure merging and post-processing by @Kerollmops in https://github.com/meilisearch/meilisearch/pull/5422 and https://github.com/meilisearch/meilisearch/pull/5468
- Isolate word fst usage to dedicate it to typo-correction by @ManyTheFish in https://github.com/meilisearch/meilisearch/pull/5415
- Show database sizes batches by @Kerollmops in https://github.com/meilisearch/meilisearch/pull/5457 and https://github.com/meilisearch/meilisearch/pull/5464
⚠️ Please consider that the batches stats content can change anytime.
- Improve performance of computing document stats by @Kerollmops in https://github.com/meilisearch/meilisearch/pull/5465
❤️ Thanks again to our external contributors:
- Meilisearch: @MichaScant
- Heed: @oXtxNt9U
- Arroy: @ptondereau
- Charabia: @NarHakobyan, @mosuka
v1.14.0-rc.3
[!WARNING] Since this is a release candidate (RC), we do NOT recommend using it in a production environment. Is something not working as expected? We welcome bug reports and feedback about new features.
- make meilisearch accept cancellation tasks even when the disk is full by @irevoire in https://github.com/meilisearch/meilisearch/pull/5492
Full Changelog: https://github.com/meilisearch/meilisearch/compare/v1.14.0-rc.2...v1.14.0-rc.3