New Features
Delete documents by filter
You can now delete documents using filters with the new/documents/delete route:
taskUid to check the task status.
Get documents by filter
You can now use filters in theGET endpoint of the /documents route:
/documents/fetch route to handle complex filters:
/documents/fetch route accepts: limit, offset, fields, and filter.
Fields must be set as filterable before you can use them as filters.
New filter operators: IS EMPTY and IS NULL
Two new filter operators have been added:
IS EMPTYmatches existing fields with a valid, but empty valueIS NULLmatches existing fields with an explicitnullvalue
color IS EMPTY matches document 0.
color IS NULL matches document 1.
Both operators work with the NOT operator: color IS NOT EMPTY and NOT color IS EMPTY match document 1. color IS NOT NULL and NOT color IS NULL match document 0.
Neither operator matches documents missing the specified field.
Improvements
Search performance and relevancy
The search engine has been significantly refactored to improve performance and relevancy: Performance improvements:- The fastest 75 percent of queries now consistently answer below 50ms
- Single terms are limited to 150 possible typo matches for queries with 1 typo, and 50 for queries with 2 typos
- Both single word and multi-word queries consider a maximum of 50 synonyms
- The total number of words for all synonyms of a single term cannot exceed 100
- Queries can now contain a maximum of 1000 words
- Geo search performance improvements: faster sorting of small document sets, and descending sort is now as performant as ascending sort
- The
exactnessranking rule no longer treats synonyms as exact matches, boosting documents containing the query exactly as typed - Results are always sorted as if the
wordsranking rule has higher priority thanattributes,exactness,typo, andproximityranking rules - Split words are now treated as possible digrams, so
whit ehorsemay matchwhite horse - N-grams and split words are ranked lower than exact words in the
typoranking rule - Ranking rule behavior is now consistent regardless of the number of ranked documents
Automated task deletion
The task queue now has a maximum limit of 1M tasks. When the limit is reached, Meilisearch automatically deletes the oldest 100k tasks (if they are finished). This prevents database issues when the task queue becomes full. A hard limit of 10GiB of tasks has been added. When this is reached, Meilisearch will attempt to delete unfinished tasks automatically before rejecting new tasks.Language support improvements
- Split camelCase in Latin segmenter
- Improved Arabic normalization and segmentation
CSV boolean support
CSV documents now support boolean values.Other improvements
- Add experimental feature to reduce RAM usage
- Improve geosort error messages
- Improve error message when payload is too large
- Improve the
GET /healthroute by ensuring the internal database is accessible