您可以控制MongoDB Searchstring
如何使用分析器将 字段的内容转换为可搜索词语。分析器是将分词器(从文本中提取词元)与您定义的筛选器相结合的策略。MongoDB Search 将筛选器应用于词元以创建可索引词语,从而更正标点符号、大小写、填充词等方面的差异。
您可以在索引定义中指定分析器,以便MongoDB Search 在构建索引或搜索数据库时使用。您还可以指定 个备用(多重)分析器,在为单个字段索引时使用,或定义自己的自定义分析器。
语法
以下标签页显示了您可以在索引定义中配置的分析器选项的语法:
在MongoDB Search索引定义中使用 analyzer
选项构建索引时,您可以为MongoDB Search 指定应用字符串字段的索引分析器。
MongoDB Search 会将顶级分析器应用于索引定义中的所有字段,除非您在字段的 mappings.fields
定义中为字段指定不同的分析器。
如果省略 analyzer
选项, MongoDB 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 }
您可以使用MongoDB Search索引定义中的 searchAnalyzer
选项为MongoDB Search 指定要应用查询文本的搜索分析器。
如果省略 searchAnalyzer
选项, MongoDB Search 默认使用您为 analyzer
选项指定的分析器。如果省略这两个选项, MongoDB Search 默认使用标准分析器。
1 { 2 "searchAnalyzer": "<analyzer-for-query>", 3 "mappings": { 4 "dynamic": <boolean>, 5 "fields": { <field-definition> } 6 } 7 }
在MongoDB Search索引定义中使用 multi
选项构建索引时,您可以为MongoDB Search 指定应用字符串字段的备用分析器。
要在MongoDB 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 }
您可以使用MongoDB 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 }
提示
通过观看学习
观看此视频,了解MongoDB Search 如何使用分析器将文档分解为可搜索单元并构建倒排索引。
时长:8 分钟
分析器
MongoDB Search 提供以下内置分析器:
分析器 | 说明 |
---|---|
对所有MongoDB Search 索引和查询使用默认分析器。 | |
遇到非字母字符时,将文本分割为可搜索词语。 | |
遇到空白字符时,将文本分割为可搜索词语。 | |
将文本字段作为单个词语进行索引。 | |
提供一组语言特定的文本分析器。 |
如果您未在索引定义中指定分析器,MongoDB 将使用默认的标准分析器。
规范化器
规范化器在分析结束时仅生成一个词元。您只能在MongoDB Search 词元类型的字段定义中配置规范化器。MongoDB Search 提供以下规范化器:
规范化器 | 说明 |
---|---|
| 将字符串字段中的文本转换为小写,并为整个字符串创建单个词元。 |
| 不执行任何转换,但仍创建单个词元。 |
了解详情
要了解有关分析器的更多信息,请参阅 MongoDB 开发者中心的分析分析器,为应用构建正确的搜索索引。