Docs 菜单
Docs 主页
/
Atlas
/ / / /

标准分析器

standard 分析器是所有 Atlas Search 索引和查询的默认分析器。它根据单词边界将文本划分为词语,因此,对于大多数使用情形,它是语言中立的。它将所有词语转换为小写并删除标点符号。它基于语法进行分词,可识别电子邮件地址、首字母缩略词、中日韩字符、字母数字等。

您可以在 Atlas UI Visual Editor 中创建或编辑索引时,查看 standard 分析器为内置示例文档和查询字符串创建的词元。如果您选择 Refine Your Index,Atlas UI 将在 Index Configurations 部分中显示一个标题为 View text analysis of your selected index configuration 的部分。如果您展开此部分,Atlas UI 将显示 standard 分析器为每个示例字符串生成的索引和搜索词元。

重要

Atlas Search 不会索引分析器令牌大小超过 32766 字节的字符串字段。如果使用关键字分析器,则不会对超过 32766 字节的字符串字段编制索引。

以下示例索引定义使用 standard 分析器指定 sample_mflix.movies 集合中的 title 字段上的索引。要按照此示例进行操作,请在您的集群上加载示例数据,然后按照创建 Atlas Search 索引教程中的步骤导航到 Atlas UI中的 Create a Search Index 页面。然后,选择 minutes 集合作为您的数据源,并按照示例过程在 Visual EditorJSON editor 中创建索引。

  1. 单击 Refine Your Index 配置索引。

  2. Index Configurations 部分中,将 Dynamic Mapping 切换为 off

  3. Field Mappings 部分中,单击 Add Field Mapping 打开 Add Field Mapping 窗口。

  4. 单击 Customized Configuration(连接)。

  5. Field Name 下拉列表中选择 title

  6. 单击 Data Type 下拉列表并选择 String(如果尚未选择)。

  7. 展开 String Properties 并进行以下更改:

    索引分析器

    如果尚未选择,请从下拉菜单中选择 lucene.standard

    Search Analyzer

    如果尚未选择,请从下拉菜单中选择 lucene.standard

    索引选项

    使用默认 offsets

    Store

    使用默认 true

    忽略以上内容

    保留默认设置。

    规范

    使用默认 include

  8. 单击 Add(连接)。

  9. 单击 Save Changes(连接)。

  10. 单击 Create Search Index(连接)。

  1. 将默认索引定义替换为以下索引定义。

    {
    "mappings": {
    "fields": {
    "title": {
    "type": "string",
    "analyzer": "lucene.standard"
    }
    }
    }
    }
  2. 单击 Next(连接)。

  3. 单击 Create Search Index(连接)。

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

db.movies.aggregate([
{
"$search": {
"text": {
"query": "action",
"path": "title"
}
}
},
{
"$limit": 2
},
{
"$project": {
"_id": 0,
"title": 1
}
}
])
[
{
title: 'Action Jackson'
},
{
title: 'Class Action'
}
]

Atlas Search 返回了这些文档,因为它将查询词 action 与文档的词元 action 相匹配,Atlas Search 通过使用 lucene.standard 分析器对 title 字段中的文本执行以下操作来创建这些文档:

  • 将文本转换为小写。

  • 根据单词边界分割文本并创建独立令牌。

下表显示了 Atlas Search 使用标准分析器创建的令牌(可搜索术语),以及 Atlas Search 为结果中的文档的关键字分析器空白分析器创建的令牌:

标题
标准分析器词元
关键字分析器词元
空白分析器令牌

Action Jackson

action, jackson

Action Jackson

Action, Jackson

Class Action

class, action

Class Action

Class, Action

如果使用以下分析器对字段编制索引:

  • 关键字分析器:Atlas Search 无法匹配查询词 action 结果中的文档,因为 keyword 分析器只匹配搜索词与字段(Action JacksonClass Action)全部内容完全匹配的文档。

  • 空格分析器:Atlas Search 无法匹配查询词 action 结果中的文档,因为 whitespace 分析器将 title 字段值按其原始大小写 (Action) 进行分词,而查询词为小写 action,与 whitespace 分析器词元不匹配。

后退

分析器

在此页面上