内置排序规则

    Meilisearch 中有两种类型的排序规则:内置排序规则和自定义排序规则。本文介绍了使用和配置自定义排序规则的主要方面。

    内置排序规则是 Meilisearch 相关性计算的核心。

    内置排序规则列表

    Meilisearch 包含以下六个内置排序规则,按以下顺序排列

    [
      "words",
      "typo",
      "proximity",
      "attribute",
      "sort",
      "exactness"
    ]
    

    根据您的需要,您可能希望更改此顺序。为此,请使用更新设置端点更新排序规则端点

    1. 词语 (Words)

    结果按 **匹配查询词语的数量递减** 排序。首先返回包含所有查询词语的文档。

    注意 (NOTE)

    words 规则从右到左工作。因此,查询字符串的顺序会影响结果的顺序。

    例如,如果有人搜索 batman dark knight,则 words 规则将首先对包含所有三个词语的文档进行排序,其次是仅包含 batmandark 的文档,最后是仅包含 batman 的文档。

    2. 拼写错误 (Typo)

    结果按 **拼写错误的数量递增** 排序。首先返回与查询词语拼写错误较少的文档。

    3. 接近度 (Proximity)

    结果按 **匹配查询词语之间距离递增** 排序。首先返回查询词语彼此靠近且顺序与查询字符串相同的文档。

    可以降低此排序规则的精度。 这可能会显著提高索引性能。在少数情况下,降低精度也可能导致使用多个搜索词语的查询的搜索相关性降低。

    4. 属性 (Attribute)

    结果根据 **属性排序顺序** 排序。首先返回在更重要的属性中包含查询词语的文档。

    此外,请注意,包含查询词语位于属性开头的文档将被视为比包含查询词语位于属性末尾的文档更相关。

    5. 排序 (Sort)

    结果 **根据查询时决定的参数** 排序。当 sort 排序规则处于较高位置时,排序是详尽的:结果的相关性较低,但更紧密地遵循用户定义的排序顺序。当 sort 处于较低位置时,排序是相关的:结果将非常相关,但可能并不总是遵循用户定义的顺序。

    注意 (NOTE)

    与其他排序规则不同,排序仅对包含 sort 搜索参数 的查询有效。如果搜索请求不包含 sort 或其值无效,则此规则将被忽略。

    6. 精确度 (Exactness)

    结果按 **匹配词语与查询词语的相似度** 排序。首先返回包含与查询词语完全相同的词语的文档。

    示例

    Demonstrating the typo ranking rule by searching for 'vogli'

    拼写错误 (Typo)
    • vogli:0 个拼写错误
    • volli:1 个拼写错误

    typo 规则根据匹配查询词的错别字数量递增对结果进行排序。