文本搜索为在索引字段中包含搜索词的每个文档分配分数。分数确定文档与给定搜索查询的相关性。
对于text
索引,索引字段的权重表示就文本搜索分数而言,该字段相对于其他索引字段的重要性。
对于文档中的每个索引字段,MongoDB将匹配数乘以权重并求和。然后,使用此总和,MongoDB计算文档的分数。有关$meta
按文本分数返回和排序的详细信息,请参见运算符。
索引字段的默认权重为1。要调整索引字段的权重,请weights
在db.collection.createIndex()
方法中包括该选项
。
警告
仔细选择砝码,以免需要重新编制索引。
集合blog
包含以下文档:
要text
为该content
字段和该keywords
字段创建具有不同字段权重的索引,请
weights
在createIndex()
方法中添加选项。例如,以下命令在三个字段上创建索引,并将权重分配给两个字段:
该text
指数具有以下字段和重量:
content
重量为10,keywords
权重为5,并且about
默认权重为1。这些权重表示索引字段彼此之间的相对重要性。例如,content
字段中的字词匹配具有:
2
将(即10:5
)影响作为术语在该keywords
字段中的匹配,
并且10
时间(即10:1
)如在一个匹配术语的影响
about
场。