相关性
属性排序规则
本文解释了 searchableAttributes
数组中属性的顺序如何影响搜索结果的相关性。
在大多数数据集中,某些字段对搜索的相关性比其他字段更高。例如,在电影搜索中,title
(标题)可能比overview
(概述)或release_date
(发布日期)更有意义。
当searchableAttributes
使用默认值[*]
时,所有字段具有相同的权重。
如果手动配置可搜索属性列表,数组中靠前的属性在计算搜索结果相关性时会更重要。
示例
使用上述属性排序时,在title
字段中匹配到的词语对相关性的影响会比在overview
或release_date
中找到相同词语更大。例如,如果搜索”1984”,像迈克尔·雷德福的电影《1984》这样的结果会比1984年上映的电影排名更高。
属性排序与嵌套对象
默认情况下,嵌套字段与其父属性具有相同的权重。使用点表示法可以为嵌套对象中的属性设置不同权重:
使用上述排序时,在计算文档排名分数时,review.critic
会比其同级字段review.user
更重要。
attribute
规则在rankingRules
中的位置决定了结果的排序方式。也就是说,如果attribute
位于排序规则列表的底部,它对搜索结果几乎不会产生影响。