Docs 菜单
Docs 主页
/
MongoDB Manual
/ / /

为自管理部署的文本搜索结果分配权重

文本Atlas Search为索引字段中包含Atlas Search术语的每个文档分配一个分数。 该分数确定文档与给定Atlas Search查询的相关性。

对于 text 索引,索引字段的权重表示该字段在文本Atlas Search分数方面相对于其他索引字段的重要性。

对于文档中的每个索引字段, MongoDB匹配项数乘以权重,并对结果求和。 然后, MongoDB使用该总和计算文档的分数。 有关返回文本分数和按文本分数排序的详细信息,请参阅 $meta操作符。

索引字段的默认权重为 1。要调整索引字段的权重,请在db.collection.createIndex()方法中包含weights选项。

警告

仔细选择权重,以免需要重新索引。

集合 blog 包含以下文档:

{
_id: 1,
content: "This morning I had a cup of coffee.",
about: "beverage",
keywords: [ "coffee" ]
}
{
_id: 2,
content: "Who doesn't like cake?",
about: "food",
keywords: [ "cake", "food", "dessert" ]
}

要为content字段和keywords字段创建具有不同字段权重的text索引,请在createIndex()方法中包含weights选项。 示例,以下命令在三个字段上创建索引,并为其中两个字段分配权重:

db.blog.createIndex(
{
content: "text",
keywords: "text",
about: "text"
},
{
weights: {
content: 10,
keywords: 5
},
name: "TextIndex"
}
)

text 索引有以下字段和权重:

  • content 权重为10 ,

  • keywords 权重为5 ,并且

  • about 默认权重为 1。

这些权重表示索引字段之间的相对重要性。 实例, content字段中的术语匹配项具有:

  • 2 次(即 10:5 )作为keywords字段中的术语匹配项的影响,以及

  • 10 次(即 10:1 )作为about字段中术语匹配的影响。

注意

对于MongoDB Atlas上托管的数据, Atlas Search提供比text索引更强大的自定义评分。 要学习;了解更多信息,请参阅Atlas Search评分文档。

后退

指定文本索引的名称