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

多分析器

在此页面上

  • 限制
  • 例子

您可以在索引定义中使用 multi对象来指定也用于索引字段的备用分析器。当您除了默认分析器之外还使用备用分析器对字段进行索引时,您可以使用默认分析器或备用分析器搜索集合。本页演示如何使用multi索引定义中指定备用分析器。要了解有关使用备用分析器进行搜索的更多信息,请参阅构建查询路径。

multi 路径选项仅适用于字符串类型的字段。

Atlas Search 不支持嵌套多个multi对象层。

以下示例索引定义使用standard分析器指定sample_mflix.movies集合中title字段的索引。索引定义还指定关键字分析器作为title字段的备用分析器,其名称为keywordAnalyzer关键字分析器分析器会将整个字段作为单个词语进行索引,因此仅当搜索词语与指定字段完全匹配时才会返回结果。

如果您将collection加载到集群上,则可以使用Atlas用户界面中的可视化编辑器或 JSON编辑器创建示例索引。选择首选配置方法后,选择数据库和collection。

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

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

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

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

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

    索引分析器
    如果尚未选择,请从下拉菜单中选择 lucene.standard
    Search Analyzer
    如果尚未选择,请从下拉菜单中选择 lucene.standard
    索引选项
    使用默认 offsets
    Store
    使用默认 true
    忽略以上内容
    保留默认设置。
    规范
    使用默认 include
  6. 单击Add Multi Field可对title字段配置另一个分析器。

  7. Multi Field Name字段中输入keywordAnalyzer

  8. Multi Field Properties 进行以下更改:

    索引分析器
    如果尚未选择,请从下拉菜单中选择 lucene.keyword
    Search Analyzer
    如果尚未选择,请从下拉菜单中选择 lucene.keyword
    索引选项
    使用默认 offsets
    Store
    使用默认 true
    忽略以上内容
    保留默认设置。
    规范
    使用默认 include
  9. 单击 Add(连接)。

  10. 单击 Save Changes(连接)。

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

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

    1{
    2 "mappings": {
    3 "dynamic": false,
    4 "fields": {
    5 "title": {
    6 "type": "string",
    7 "analyzer": "lucene.standard",
    8 "multi": {
    9 "keywordAnalyzer": {
    10 "type": "string",
    11 "analyzer": "lucene.keyword"
    12 }
    13 }
    14 }
    15 }
    16 }
    17}
  2. 单击 Next(连接)。

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

以下查询使用名为 keywordAnalyzer 的备用分析器在Atlas Search中查找string The Count of Monte Cristo 的精确匹配项。

1db.movies.aggregate([
2 {
3 "$search": {
4 "text": {
5 "query": "The Count of Monte Cristo",
6 "path": { "value": "title", "multi": "keywordAnalyzer" }
7 }
8 }
9 },
10 {
11 "$project": {
12 "title": 1,
13 "year": 1,
14 "_id": 0
15 }
16 }
17])
{ "title" : "The Count of Monte Cristo", "year" : 1934 }
{ "title" : "The Count of Monte Cristo", "year" : 1954 }
{ "title" : "The Count of Monte Cristo", "year" : 1998 }

相比之下,使用standard分析器进行相同的查询将找到标题中包含theCountofMonteCristo一词的所有电影。

Atlas Search 使用分析器为结果中的文档创建以下词元(可搜索词语):

标题
标准分析器词元
关键字分析器词元
The Count of Monte Cristo
the, count , of , monte , cristo
The Count of Monte Cristo

后退

语言

在此页面上