容错功能可帮助用户找到相关结果,即使他们的搜索查询包含拼写错误或错别字,例如将 phnoe 错误地输入为 phone。您可以为每个索引配置容错功能

已启用

容错功能默认启用,但您可以在需要时禁用它
curl \
  -X PATCH 'MEILISEARCH_URL/indexes/movies/settings/typo-tolerance' \
  -H 'Content-Type: application/json' \
  --data-binary '{ "enabled": false }'
禁用容错功能后,Meilisearch 不再将与您的查询词相差几个字符的单词视为匹配项。例如,查询 phnoe 不再返回包含单词 phone 的文档。 在大多数情况下,保持容错功能启用会带来更好的搜索体验。 大型或多语言数据集可能是例外,因为在这些情况下,容错功能可能导致误报匹配。

minWordSizeForTypos

默认情况下,Meilisearch 接受包含五个或更多字符的查询词出现一个错别字,如果该词至少有九个字符,则最多接受两个错别字。 如果您的数据集包含 seven,则搜索 sevemsevan 将匹配 seven。但 tow 不会匹配 two,因为它少于 5 个字符。 您可以使用 minWordSizeForTypos 对象覆盖这些默认设置。下面的代码示例将一个错别字的最小单词大小设置为 4,将两个错别字的最小单词大小设置为 10
curl \
  -X PATCH 'MEILISEARCH_URL/indexes/movies/settings/typo-tolerance' \
  -H 'Content-Type: application/json' \
  --data-binary '{
    "minWordSizeForTypos": {
      "oneTypo": 4,
      "twoTypos": 10
    }
  }'
更新 minWordSizeForTypos 对象时,请记住
  • oneTypo 必须大于或等于 0 且小于或等于 twoTypos
  • twoTypos 必须大于或等于 oneTypo 且小于或等于 255
换句话说:0 ≤ oneTypo ≤ twoTypos ≤ 255 我们建议将 oneTypo 的值保持在 28 之间,将 twoTypos 的值保持在 414 之间。如果任一值过低,您可能会得到大量误报结果。另一方面,如果两个值都设置得过高,许多搜索查询可能无法从容错功能中受益。
首字符错别字
Meilisearch 将查询的首字符错别字视为两个错别字。
连接
在考虑容错的可能候选时,Meilisearch 将连接由空格分隔符分隔的多个搜索词。这被视为一个错别字。例如,搜索 any way 将匹配包含 anyway 的文档。
有关错别字计算的更多信息,请参见下文

disableOnWords

您可以通过将查询词添加到 disableOnWords 来禁用这些查询词的容错功能。disableOnWords 不区分大小写。
curl \
  -X PATCH 'MEILISEARCH_URL/indexes/movies/settings/typo-tolerance' \
  -H 'Content-Type: application/json' \
  --data-binary '{
    "disableOnWords": [
      "shrek"
    ]
  }'
Meilisearch 在搜索时不会对查询词 Shrekshrek 应用容错功能来匹配文档。

disableOnAttributes

您可以通过将特定文档属性添加到 disableOnAttributes 来禁用其容错功能。下面的代码示例禁用了 title 的容错功能
curl \
  -X PATCH 'MEILISEARCH_URL/indexes/movies/settings/typo-tolerance' \
  -H 'Content-Type: application/json' \
  --data-binary '{ "disableOnAttributes": ["title"] }'
使用上述设置,title 属性中的匹配项将不允许任何错别字。例如,搜索 beautiful(9 个字符)将不会匹配由 Javier Bardem 主演的电影“Biutiful”。在默认设置下,这将是匹配项。

disableOnNumbers

您可以通过将 disableOnNumbers 设置为 true 来禁用所有索引和搜索请求中所有数值的容错功能 默认情况下,数值的容错功能是开启的。这可能导致误报,例如搜索 2024 匹配包含 20252004 的文档。 disableOnNumbers 设置为 true 时,包含数字的查询只返回精确匹配。除了减少误报数量,禁用数字容错功能还可以提高索引性能。
© . This site is unofficial and not affiliated with Meilisearch.