进入MongoDB中文手册(4.2版本)目录
注意
视图不支持全文检索。
1 查询框架
使用$text查询运算符对具有文本索引的集合执行全文检索。
$text将使用空格和大多数标点符号作为分隔符来对查询字符串分词,并对所有查询字符串的分词执行OR逻辑运算。
例如,您可以使用以下查询从列表“ coffee”,“ shop”和“ java”中查找包含任何词语的所有商店:
db.stores.find( { $text: { $search: "java coffee shop" } } )
使用$meta查询运算符可获取并匹配每个匹配文档的相关性得分。例如,要按相关性顺序订购咖啡店列表,请运行以下命令:
db.stores.find(
{ $text: { $search: "coffee shop cake" } },
{ score: { $meta: "textScore" } }
).sort( { score: { $meta: "textScore" } } )
有关 t e x t 和 text和 text和meta 运算符的更多信息,包括限制和行为,请参阅:
- $text 参考页;
- $ text查询示例;
- $meta 投影运算符。
2 聚合框架(Aggregation Framework)
在使用聚合框架时,请将$match与$text表达式一起使用来执行文本搜索查询。要按相关性得分的顺序对结果进行排序,请在$sort阶段中使用$meta聚合运算符。
$meta投影运算符的行为和要求与$meta聚合运算符的行为和要求不同。有关$meta聚合运算符的详细信息,请参见$meta聚合运算符参考页面。
有关聚合框架中全文检索的更多信息和示例 ,请参阅聚合管道中的全文检索。
进入MongoDB中文手册(4.2版本)目录