在大多数数据集中,某些字段对搜索的相关性比其他字段更高。例如,在电影搜索中,title(标题)可能比overview(概述)或release_date(发布日期)更有意义。

searchableAttributes使用默认值[*]时,所有字段具有相同的权重。

如果手动配置可搜索属性列表,数组中靠前的属性在计算搜索结果相关性时会更重要。

示例

[
  "title",
  "overview",
  "release_date"
]

使用上述属性排序时,在title字段中匹配到的词语对相关性的影响会比在overviewrelease_date中找到相同词语更大。例如,如果搜索”1984”,像迈克尔·雷德福的电影《1984》这样的结果会比1984年上映的电影排名更高。

属性排序与嵌套对象

默认情况下,嵌套字段与其父属性具有相同的权重。使用点表示法可以为嵌套对象中的属性设置不同权重:

[
  "title",
  "review.critic",
  "overview",
  "review.user"
]

使用上述排序时,在计算文档排名分数时,review.critic会比其同级字段review.user更重要。

attribute规则在rankingRules中的位置决定了结果的排序方式。也就是说,如果attribute位于排序规则列表的底部,它对搜索结果几乎不会产生影响。