MongoDB-CN-Manual
搜索文档…
MongoDB-CN-Manual
MongoDB中文手册|官方文档中文版
MongoDB用户手册说明
MongoDB简介
安装 MongoDB
The mongo Shell
MongoDB CRUD操作
插入文档
查询文档
更新文档
删除文档
地理空间查询
批量写入操作
可重试写入
可重试读取
SQL到MongoDB的映射图表
文本搜索
文本索引
文本索引操作
集合管道中的文本索引
文本索引语言
Read Concern读关注
Write Concern写关注
MongoDB CRUD概念
MongoDB聚合
MongoDB数据模型
MongoDB事务
MongoDB事务
MongoDB索引
MongoDB安全
Change Streams变更流
MongoDB复制
MongoDB分片
MongoDB管理
MongoDB存储
MongoDB参考
MongoDB FAQ
MongoDB 版本管理
联系我们
由
GitBook
提供支持
集合管道中的文本索引
在本页面:
限制条件
文字分数
计算包含单词的文章的总浏览量
返回结果按文本搜索分数排序
文字分数匹配
指定用于文本搜索的语言
在聚合管道中,可以在
$match
阶段使用
$text
查询运算符来进行文本搜索。
限制条件
有关常规的
$text
运算符限制,请参见
运算符限制
。
此外,聚合管道中的文本搜索具有以下限制:
包含
$text
的
$match
阶段必须是管道中的第一个阶段。
文本运算符在阶段只能出现一次。
文本运算符表达式不能出现在
$or
或
$not
表达式中。
默认情况下,文本搜索不会按匹配分数的顺序返回匹配的文档。在
$sort
阶段使用
$meta
聚合表达式。
文字分数
$text
操作符为索引字段中包含搜索词的每个文档分配一个分数。分数表示文档与给定文本搜索查询的相关性。分数可以是
$sort
管道规范的一部分,也可以是投影表达式的一部分。**{$meta: "textScore"}**表达式提供处理
$text
操作的信息。有关访问投射或排序分数的详细信息,请参阅
$meta
。
元数据仅在包含
$text
操作的
$match
阶段之后可用。
例子
以下示例假定集合
articles
在字段
subject
上具有文本索引:
db.articles.createIndex( { subject: "text" } )
计算包含单词的文章的总浏览量
下面的聚合在
$match
阶段搜索术语cake,并在
$group
阶段计算匹配文档的总视图。
db.articles.aggregate(
[
{ $match: { $text: { $search: "cake" } } },
{ $group: { _id: **null**, views: { $sum: "$views" } } }
]
)
返回结果按文本搜索分数排序
要根据文本搜索分数进行排序,在
$sort
阶段包含
{$meta: "textScore"}
表达式。下面的示例匹配术语
cake
或
tea
,按
textScore
降序排序,并且只返回结果集中的
title
字段。
db.articles.aggregate(
[
{ $match: { $text: { $search: "cake tea" } } },
{ $sort: { score: { $meta: "textScore" } } },
{ $project: { title: 1, _id: 0 } }
]
)
指定的元数据决定排序顺序。例如,**“textScore”**元数据按降序排序。有关元数据的更多信息以及覆盖元数据的默认排序顺序的示例,请参见
$meta
。
文字分数匹配
**“textScore”**元数据可用于包括
$text
操作的
$match
阶段之后的投影、排序和条件。
下面的示例匹配术语
cake
或
tea
,投影标题和分数字段,然后只返回分数大于
1.0
的文档。
db.articles.aggregate(
[
{ $match: { $text: { $search: "cake tea" } } },
{ $project: { title: 1, _id: 0, score: { $meta: "textScore" } } },
{ $match: { score: { $gt: 1.0 } } }
]
)
指定用于文本搜索的语言
下面的聚合在
$match
阶段中以西班牙语搜索包含术语
saber
而不是术语
claro
的文档,并计算
$group
阶段中匹配文档的总视图。
db.articles.aggregate(
[
{ $match: { $text: { $search: "saber -claro", $language: "es" } } },
{ $group: { _id: null, views: { $sum: "$views" } } }
]
)
译者:杨帅
校对:杨帅
以前
文本索引操作
下一个
文本索引语言
最近更新
9mo ago
复制链接
大纲
限制条件
文字分数
例子
计算包含单词的文章的总浏览量
返回结果按文本搜索分数排序
文字分数匹配
指定用于文本搜索的语言