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

后退

语言

在此页面上