错别字容忍度有助于用户即使在搜索查询中包含拼写错误或错别字时也能找到相关结果。
phone 拼写成 phnoe。您可以为每个索引配置错别字容忍度功能。 Meilisearch 使用前缀莱文斯坦算法来确定文档中的某个词是否可能与查询词匹配。 上述错别字数量大致相当于莱文斯坦距离。两个单词 M 和 P 之间的莱文斯坦距离可以被认为是“通过对 M 执行以下基本操作将 M 转换为 P 的最小成本”:kitten → sitten)siting → sitting)saturday → satuday)1 到 4 个字符之间,则不允许有错别字。只有包含以该查询词开头或与该查询词长度相同的词的文档才被视为有效5 到 8 个字符之间,则允许有一个错别字。包含与一个错别字匹配的词的文档将保留以进行下一步处理。8 个字符,我们最多接受两个错别字saturday(长度为 7 个字符)使用第二条规则并匹配每个包含一个错别字的文档。例如
saturday 被接受,因为它是相同的词satuday 被接受,因为它包含一个错别字sutuday 不被接受,因为它包含两个错别字caturday 不被接受,因为它包含两个错别字(如上文所述,单词首字母的错别字被视为两个错别字)typo 排名规则的影响typo 排名规则按匹配查询词的错别字数量递增对搜索结果进行排序。错别字数量为 0 的文档排名最高,其次是 1 个和 2 个错别字。 typo 排名规则的存在或不存在对错别字容忍度设置没有影响。但是,禁用错别字容忍度设置实际上也会禁用 typo 排名规则。 这是因为所有返回的文档都将包含 0 个错别字。 总结:typo 排名规则影响 Meilisearch 如何对其结果进行排序typo