New Features
Customize text separators
Meilisearch word segmentation now supports customization through two new index settings:separatorTokens and nonSeparatorTokens.
Add a character to the separatorTokens list to use it as a word separator:
nonSeparatorTokens list when you don’t want Meilisearch to use it to separate words:
Load user-defined dictionaries
Expand Meilisearch’s default language-based dictionaries with domain-specific terms using the newdictionary index setting. This improves word segmentation accuracy for specialized vocabularies:
dictionary setting works alongside existing stopWords and synonyms settings:
Improvements
Enhanced data privacy in error messages
Hidden document fields are no longer displayed in error messages. When attempting to sort by a non-sortable field while other non-displayed sortable fields exist, you’ll see a message like:Improved filter parameter handling with backslashes
Fixed a bug preventing proper use of backslash characters infilter search parameter expressions. This change requires updating how backslashes are escaped in filters.
If you use backslashes in filter expressions, you must now escape them. For example:
- Before v1.4.0:
path = "my\\test\\path" - From v1.4.0:
path = "my\\\\test\\\\path"
\\\\ to \\, and then Meilisearch unescapes \\ to a single \.
Search performance improvements
Improved indexing speed when importing dumps by using buffered readers and writers.Other
Breaking change: Backslash escaping in filter expressions
Users with backslash characters infilter search parameters must update their filter expressions. All backslashes now require escaping at the Meilisearch filter level (in addition to any JSON escaping).
For a document with path: "my\test\path" stored as "my\\test\\path" in JSON, the filter syntax changed:
- Previously:
path = "my\\test\\path"(only JSON escaping) - Now:
path = "my\\\\test\\\\path"(JSON + Meilisearch filter escaping)