“文档” 菜单
文档首页
/
MongoDB 阿特拉斯
/ / / /

简单分析器

只要找到非字母字符,例如空格、标点符号或一个或多个数字, simple分析器就会将文本划分为可搜索术语(词元)。它将所有文本转换为小写。

重要

Atlas Search 不会对大小超过 32766 字节的字符串字段进行索引。

以下示例索引定义使用simple分析器指定 sample_mflix.movies集合中的title字段上的索引。如果已将集合加载到集群上,则可以使用 Atlas 用户界面可视化编辑器或 JSON编辑器创建示例索引。选择首选配置方法后,选择数据库和集合。

以下查询在title字段中搜索词语lion ,并将输出限制为五个结果。

1db.movies.aggregate([
2 {
3 "$search": {
4 "text": {
5 "query": "lion",
6 "path": "title"
7 }
8 }
9 },
10 {
11 "$limit": 5
12 },
13 {
14 "$project": {
15 "_id": 0,
16 "title": 1
17 }
18 }
19])
[
{ title: 'White Lion' },
{ title: 'The Lion King' },
{ title: 'The Lion King 1 1/2' },
{ title: 'The Lion King 1 1/2' },
{ title: 'Lion's Den' },
]

Atlas Search 使用lucene.simple分析器对title字段中的文本执行以下操作,从而返回这些文档:

  • 将文本转换为小写。

  • 通过在存在非字母字符的位置分割文本来创建单独的词元。

下表显示了 Atlas Search 使用简单分析器以及标准分析器空格分析器为结果中的文档创建的词元:

标题
简单分析器词元
标准分析器词元
空白分析器令牌
White Lion
whitelion
whitelion
WhiteLion
The Lion King
thelionking
thelionking
TheLionKing
The Lion King 1 1/2
thelionking
the, lion, king, 1, 1, 2
TheLionKing11/2
Lion's Den
lionsden
lion'sden
Lion'sDen

Atlas Search 在结果中返回文档Lion's Den ,因为simple分析器为lion创建了一个单独的词元,该词元与查询词lion匹配。相比之下,如果您使用标准分析器空格分析器对字段进行索引,Atlas Search 将在查询结果中返回一些文档,但不会返回Lion's Den ,因为这些分析器会创建词元lion'sLion's ,但不为lion创建令牌。

← 标准分析器
空格 →