You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Atlas Search含下划线字段无法匹配部分搜索的解决方法咨询

问题分析与解决方案

问题背景

当使用给定的Atlas Search索引和查询搜索关键词document时,期望返回两个示例文档,但实际仅返回第一个文档(_id:1),第二个文档(_id:2)未被匹配到。

现有Atlas Search索引

{
  mappings: {
    dynamic: false,
    fields: {
      content: {
        tokenization: 'edgeGram',
        type: 'autocomplete'
      },
      title: {
        tokenization: 'edgeGram',
        type: 'autocomplete'
      }
    },
  },
  name: 'DocumentSearch',
}

示例数据

[
  {
     _id: 1,
     title: 'My first document',
     content: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit'
  },
  {
     _id: 2,
     title: 'My first_document',
     content: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit'
  },
]

搜索查询

{
  $search: {
    index: 'DocumentSearch',
    compound: {
      minimumShouldMatch: 1,
      should: [
        {
          autocomplete: {
            path: 'title',
            query: 'document',
            score: { boost: { value: 4 } },
          },
        },
        {
          autocomplete: {
            path: 'content',
            query: 'document',
          },
        },
      ],
    },
    highlight: {
      path: 'content',
    },
  },
}

问题原因

第二个文档的title值为My first_document,其中first_document是下划线连接的字符串。当前索引中title字段使用默认分词逻辑,未将下划线视为分隔符,导致first_document被当作单个完整token处理。而edgeGram tokenization是从每个token的开头生成前缀片段,因此这个token的所有索引片段都是以f开头的(如f、fi、fir...first_document),完全不包含document相关的前缀片段,自然无法被搜索词document匹配到。

解决方案

修改Atlas Search索引,为title字段指定standard分词器,该分词器会将下划线视为分隔符,把first_document拆分为first和document两个独立token。这样document作为单独的token,其对应的edgeGram片段(d、do、doc...document)会被索引,就能被搜索词匹配到。

修改后的索引

{
  mappings: {
    dynamic: false,
    fields: {
      content: {
        tokenization: 'edgeGram',
        type: 'autocomplete'
      },
      title: {
        tokenization: 'edgeGram',
        type: 'autocomplete',
        analyzer: 'standard' // 添加该配置,指定分词器
      }
    },
  },
  name: 'DocumentSearch',
}

修改索引后重新构建索引,再执行原搜索查询,即可同时返回两个文档。

内容的提问来源于stack exchange,提问作者bflemi3

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 14:47:46