Docs 菜单
Docs 主页
/
Atlas
/ / /

使用分析器处理数据

您可以控制 Atlas Search 如何使用分析器string 字段内容转换为可搜索词语。分析器是将分词器(从文本中提取词元)与定义的筛选器结合使用的策略。Atlas Search 将筛选器应用于词元以创建可索引词语,从而纠正标点符号、大小写、语气词等方面的差异。

您可以在索引定义中指定Atlas Search在构建索引或搜索数据库时使用的分析器。 您还可以指定 个备用(多重)分析器,在为单个字段索引时使用,或定义自己的自定义分析器。

以下标签页显示了您可以在索引定义中配置的分析器选项的语法:

在构建索引时,您可以在 Atlas Search 索引定义中使用 analyzer 选项为 Atlas Search 指定一个索引分析器,以应用于字符串字段。

Atlas Search 会将顶级分析器应用于索引定义中的所有字段,除非您在 mappings.fields 定义中为某个字段指定了不同的分析器。

如果您省略 analyzer 选项,Atlas Search 将默认使用标准分析器

1{
2 "analyzer": "<analyzer-for-index>",
3 "mappings": {
4 "fields": {
5 "<string-field-name>": {
6 "type": "string",
7 "analyzer": "<analyzer-for-field>"
8 }
9 }
10 }
11}

您可以使用Atlas Search索引定义中的 searchAnalyzer 选项,为Atlas Search指定应用查询文本的搜索分析器。

如果您省略 searchAnalyzer 选项,Atlas Search 将默认使用您为 analyzer 选项指定的分析器。如果您省略这两个选项,Atlas Search 将默认使用标准分析器

1{
2 "searchAnalyzer": "<analyzer-for-query>",
3 "mappings": {
4 "dynamic": <boolean>,
5 "fields": { <field-definition> }
6 }
7}

在构建索引时,您可以在 Atlas Search 索引定义中使用 multi 选项为 Atlas Search 指定备用分析器,以应用于字符串字段。

如要在 Atlas Search 查询中使用备用分析器,您必须在查询操作符的查询路径的字段 multi 中指定备用分析器的名称。

要了解更多信息,请参阅多分析器。

1{
2 "mappings": {
3 "fields": {
4 "<string-field-name>": {
5 "type": "string",
6 "analyzer": "<default-analyzer-for-field>",
7 "multi": {
8 "<alternate-analyzer-name>": {
9 "type": "string",
10 "analyzer": "<alternate-analyzer-for-field>"
11 }
12 }
13 }
14 }
15 }
16}

您可以使用Atlas Search索引中的 analyzers 选项定义一个或多个自定义分析器来转换、过滤和群组字符序列。

要使用您定义的自定义分析器,请在索引定义的 analyzersearchAnalyzermulti.analyzer 选项中指定其 name 值。

如要了解更多信息,请参阅自定义分析器。

1{
2 "mappings": {
3 "dynamic": <boolean>,
4 "fields": { <field-definition> }
5 },
6 "analyzers": [
7 {
8 "name": "<custom-analyzer-name>",
9 "tokenizer": {
10 "type": "<tokenizer-type>"
11 }
12 }
13 ]
14}

提示

通过观看学习

观看此视频,了解Atlas Search如何使用分析器将文档分解为可搜索单元并构建倒排索引。

时长:8 分钟

Atlas Search 提供以下内置分析器:

分析器
说明

将默认分析器用于所有 Atlas Search 索引和查询。

遇到非字母字符时,将文本分割为可搜索词语。

遇到空白字符时,将文本分割为可搜索词语。

将文本字段作为单个词语进行索引。

提供一组语言特定的文本分析器。

如果您未在索引定义中指定分析器,MongoDB 将使用默认的标准分析器。

规范化器仅在分析结束时生成一个词元。您只能在 Atlas Search token 类型的字段定义中配置规范化器。Atlas Search 提供以下规范化器:

规范化器
说明

lowercase

将字符串字段中的文本转换为小写,并为整个字符串创建单个词元。

none

不执行任何转换,但仍创建单个词元。

要了解有关分析器的更多信息,请参阅 MongoDB 开发者中心的分析分析器,为应用构建正确的搜索索引

后退

索引参考

在此页面上