Literals 搜寻运 operator

在本页面

Note

Views不支持文本搜索。

Query Framework

使用$text查询运算符对带有text index的集合执行文本搜索。

$text将使用空格和大多数标点符号作为分隔符来对搜索字符串进行标记化,并对搜索字符串中的所有此类标记执行逻辑OR

例如,您可以使用以下查询从列表“ coffee”,“ shop”和“ java”中查找包含任何术语的所有 Store:

db.stores.find( { $text: { $search: "java coffee shop" } } )

使用$meta查询运算符可以获取每个匹配文档的相关性分数并按其排序。例如,要按相关性 SequencesOrder 咖啡店列表,请运行以下命令:

db.stores.find(
   { $text: { $search: "coffee shop cake" } },
   { score: { $meta: "textScore" } }
).sort( { score: { $meta: "textScore" } } )

有关$text$meta运算符的更多信息,包括限制和行为,请参阅:

Aggregation Framework

使用Aggregation框架时,请使用带有$text表达式的$match来执行文本搜索查询。要按相关性得分的 Sequences 对结果进行排序,请使用$sort阶段[1]中的$meta 聚合运算符

有关Aggregation框架中的更多信息和文本搜索的示例,请参见聚合管道中的文本搜索

[1]$meta投影运算符的行为和要求与$meta聚合运算符的行为和要求不同。有关$meta聚合运算符的详细信息,请参见$meta聚合运算符参考页。