使用分析器处理数据
您可以控制 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
选项定义一个或多个自定义分析器来转换、过滤和群组字符序列。
要使用您定义的自定义分析器,请在索引定义的 analyzer
、searchAnalyzer
或 multi.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 提供以下规范化器:
规范化器 | 说明 |
---|---|
| 将字符串字段中的文本转换为小写,并为整个字符串创建单个词元。 |
| 不执行任何转换,但仍创建单个词元。 |
了解详情
要了解有关分析器的更多信息,请参阅 MongoDB 开发者中心的分析分析器,为应用构建正确的搜索索引。