Follow us
Breaking
Tech News

Misconfiguring Meilisearch typo tolerance during Rust migrations

Teams migrating from Typesense to Meilisearch often face friction with typo tolerance settings. This guide explains how to use disableOnNumbers and monitor taskUid to avoid precision errors in version 1.48.3, where short word constraints may behave unexpectedly.

Share

Typo rules and relevance ranking

Meilisearch provides strong defaults that simplify relevance tuning for Rust-based search implementations. Teams migrating from Typesense often hit friction because they assume the engine’s automatic typo correction follows their existing schema logic. By default, Meilisearch allows zero typos for words under 5 characters, one typo for words between 5 and 8 characters, and two typos for words of 9 characters or more. You should use disableOnNumbers to prevent digit transpositions from matching incorrect numeric tokens like a year or a SKU, or use disableOnAttributes to ensure the engine does not attempt to correct typos on sensitive fields. The engine treats typo as a bucket sort rule, where documents matching without typos rank above those that needed one. The ranking rules follow a specific order: words, typo, proximity, attribute, sort, and exactness. Because the attribute rule is sensitive to the order of fields, omitting searchableAttributes makes the score dependent on every field in the document. The typo rule uses typoCount and maxTypoCount to determine relevance, where a higher number of typos increases the distance from the perfect match. The attribute rule uses attributeRankingOrderScore and queryWordDistanceScore to determine how close query words remain to their original positions.

Configuration failures in short term matching

The minWordSizeForTypos setting often fails to behave as expected when teams try to tighten precision for short terms. In version 1.48.3, setting oneTypo to 10 does not stop a 4-character query like "appl" from matching "apple" via typo correction, which means the configuration silently ignores restrictive length thresholds for very short strings. This limitation means the configuration fails to apply the intended constraints for small datasets. If you are trying to refine a product catalog where short brand names must match exactly, this behavior will likely degrade your result quality. You might find it easier to just use disableOnWords to prevent the engine from applying typo tolerance to specific search query terms. You should check your task status via the API if you notice that index updates do not reflect your new settings. After sending a PATCH request to the /settings/typo-tolerance endpoint, the server returns a 202 Accepted response, but the task remains asynchronous. You must monitor the returned taskUid to confirm the configuration has successfully completed. Can you find a way to force exactness on short strings without disabling all typo tolerance?

Storage and architecture differences

Meilisearch uses LMDB for disk-based storage, which allows the engine to serve indexes larger than available RAM. This differs from the RAM-first architecture of Typesense, where the entire index must fit in memory. The March 2026 release of Meilisearch version 1.38 brought 7x faster embedding indexing, yet the engine operates primarily as a single-node architecture. This architecture means leader failure blocks writes until manual promotion is performed, unlike the Raft-based high availability in Typesense. Meilisearch Cloud starts at $20 per month, while Typesense Cloud charges based on RAM and vCPU usage. Meilisearch has over 56,000 GitHub stars, while Typesense has over 25,000. Meilisearch optimizes for small to medium datasets, while Typesense targets large datasets with strict latency requirements. Meilisearch uses Rust, while Typesense uses C++.

Feature Meilisearch Typesense
Language Rust C++
Storage Disk (LMDB) RAM
HA Model Enterprise/Cloud sharding Raft clustering
Typo Logic Index-level thresholds Per-query/field params
Share

Technewsdaily

Senior tech writer covering AI, gadgets and cybersecurity. Breaking down the news that matters, every day.