拼写容错设置
本文描述了每项拼写容错设置。
拼写容错可帮助用户即使在搜索查询中包含拼写错误或打字错误(例如,输入 phnoe
而不是 phone
)时也能找到相关结果。您可以为每个索引配置拼写容错功能。
启用
拼写容错默认启用,但您可以根据需要禁用它
禁用拼写容错后,Meilisearch 不再将与您的查询词相差几个字符的单词视为匹配项。例如,查询 phnoe
将不再返回包含单词 phone
的文档。
在大多数情况下,保持拼写容错启用会带来更好的搜索体验。大型或多语言数据集可能是例外,因为在这种情况下拼写容错可能会导致误报匹配。
minWordSizeForTypos
默认情况下,Meilisearch 接受包含五个或更多字符的查询词有一个拼写错误,如果查询词至少九个字符长,则最多允许两个拼写错误。
如果您的数据集包含 seven
,搜索 sevem
或 sevan
将匹配 seven
。但 tow
不会匹配 two
,因为它少于 5
个字符。
您可以使用 minWordSizeForTypos
对象覆盖这些默认设置。下面的代码示例将一个拼写错误的最小单词大小设置为 4
,将两个拼写错误的最小单词大小设置为 10
。
更新 minWordSizeForTypos
对象时,请记住
oneTypo
必须大于或等于 0 且小于或等于twoTypos
twoTypos
必须大于或等于oneTypo
且小于或等于255
换句话说:0 ≤ oneTypo ≤ twoTypos ≤ 255
。
我们建议将 oneTypo
的值保持在 2
到 8
之间,将 twoTypos
的值保持在 4
到 14
之间。如果任一值过低,您可能会得到大量的误报结果。另一方面,如果两个值都设置得过高,许多搜索查询可能无法从拼写容错中受益。
disableOnWords
您可以通过将查询词添加到 disableOnWords
来禁用其拼写容错。disableOnWords
不区分大小写。
Meilisearch 在搜索时不会对查询词 Shrek
或 shrek
应用拼写容错来匹配文档。
disableOnAttributes
您可以通过将特定文档属性添加到 disableOnAttributes
来禁用其拼写容错。下面的代码示例禁用了 title
的拼写容错
通过以上设置,title
属性中的匹配项将不容忍任何拼写错误。例如,搜索 beautiful
(9 个字符)将不会匹配由 Javier Bardem 主演的电影“Biutiful”。而在默认设置下,这将是一个匹配项。
disableOnNumbers
您可以通过将 disableOnNumbers
设置为 true
来禁用所有索引和搜索请求中所有数值的拼写容错
默认情况下,数值的拼写容错是开启的。这可能会导致误报,例如搜索 2024
匹配到包含 2025
或 2004
的文档。
当 disableOnNumbers
设置为 true
时,包含数字的查询将只返回精确匹配。除了减少误报数量外,禁用数字上的拼写容错还可能提高索引性能。