相关性
排序评分
本文解释了 searchableAttributes
数组中属性的顺序如何影响搜索结果的相关性。
当使用 showRankingScore
搜索参数 时,Meilisearch 会为每个文档添加一个全局排名分数字段 _rankingScore
。_rankingScore
的取值范围在 0.0
到 1.0
之间。分数越高,表示文档的相关性越强。
排名规则(ranking rules)可以按相关性(words
、typo
、proximity
、exactness
、attribute
)或字段值(sort
)对文档进行排序。由于 sort
不是基于相关性排序,因此它不会影响 _rankingScore
。
文档的排名分数不会因同一索引中其他文档的分数而改变。
例如,如果文档 A 对某个查询词的分数是 0.5
,无论文档 B、C 或 D 的分数如何变化,这个值都保持不变。
下表详细列出了所有可能影响 _rankingScore
的索引设置。未列出的设置不会影响排名分数。
索引设置 | 影响条件 | 原理说明 |
---|---|---|
searchableAttributes | 当使用 attribute 排名规则时 | attribute 排名规则根据查询词出现的属性字段对文档进行评分。字段顺序由 searchableAttributes 决定 |
rankingRules | 始终影响 | 分数是通过计算每个排名规则的子分数得出的,子分数的权重取决于它们在规则列表中的顺序 |
stopWords | 始终影响 | 停用词会影响 words 排名规则,而该规则几乎总是被使用 |
synonyms | 始终影响 | 同义词会影响 words 排名规则,而该规则几乎总是被使用 |
typoTolerance | 当使用 typo 排名规则时 | 用于计算查询允许的最大拼写错误数 |