翻译或纠错本页面

文本检索操作符

本页内容

注解

Views do not support text search.

查询框架

使用 $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" } } )

了解更多关于 $text$meta 操作符的更多信息,包括限制和行为,查阅:

聚合框架

当使用 聚合 框架时,在 $match 中使用 $text 表达式来执行一个文本检索查询,在 $sort 阶段使用 $meta 聚合操作符 对结果使用相关性分数进行排序。

了解 聚合 框架中文本检索案例的更多信息,请查阅 在聚合管道中使用文本搜索

[1]The behavior and requirements of the $meta projection operator differ from that of the $meta aggregation operator. For details on the $meta aggregation operator, see the $meta aggregation operator reference page.