elasticsearch elasticsearch中使用匹配短语/术语的奇怪差异,elasticsearch,nest,elasticsearch,Nest" /> elasticsearch elasticsearch中使用匹配短语/术语的奇怪差异,elasticsearch,nest,elasticsearch,Nest" />

elasticsearch elasticsearch中使用匹配短语/术语的奇怪差异

elasticsearch elasticsearch中使用匹配短语/术语的奇怪差异,elasticsearch,nest,elasticsearch,Nest,最近,我在使用elasticsearch时遇到了一个非常奇怪和令人沮丧的问题。我已经使用NEST API索引了大约100万个文档。索引包含一个全文字段,如下所示: {"title": {"include_in_all": false, "analyzer": "ik_max_word", "type": "string"}} 该领域的数据主要是中文,ik_max_word是一个中文分析器,具有最精细的颗粒。问题是: 1) 通常,我在该字段上使用匹配短语查询,当我像“ABC”这样查询时(我在这里

最近,我在使用elasticsearch时遇到了一个非常奇怪和令人沮丧的问题。我已经使用NEST API索引了大约100万个文档。索引包含一个全文字段,如下所示:

{"title": {"include_in_all": false, "analyzer": "ik_max_word", "type": "string"}}
该领域的数据主要是中文,ik_max_word是一个中文分析器,具有最精细的颗粒。问题是:

1) 通常,我在该字段上使用匹配短语查询,当我像“ABC”这样查询时(我在这里替换汉字),我只得到260个结果。搜索查询如下所示:

"match": {
            "title": {
              "type": "phrase",
              "query": "非公开",
              "analyzer": "ik_max_word"
            }
          }
2) 而如果我使用“ABC”的术语查询,我得到了20000多个结果

3) 此外,如果我使用匹配短语查询“ABCDE”,我会得到4000个结果

我在这里很困惑。该字段是一个已分析的字段,我认为如果我可以使用术语查询获得20000多个结果,那么分析器可以很好地分离字符并将它们放入反向索引中。我知道匹配短语查询结合了术语和位置信息,所以我认为我应该在这里得到至少20000多个结果,而不是仅仅260个

谢谢你在这方面的帮助


elasticsearch.yml中ik的配置为:

index:
  analysis:
    analyzer:
      ik:
          alias: [ik_analyzer]
          type: org.elasticsearch.index.analysis.IkAnalyzerProvider
      ik_max_word:
          type: ik
          use_smart: false
      ik_smart:
          type: ik
          use_smart: true
index.analysis.analyzer.default.type : "ik"

如何配置
ik\u max\u word
分析器?如elasticsearch.yml:
index:analysis:analysis:ik:alias:[ik\u analysis]type:org.elasticsearch.index.analysis.IkAnalyzerProvider ik\u max\u word:type:ik-use\u smart:false-ik\u smart:type:ik-use\u smart:true-index.analysis.analyzer.default.type:“ik”
能否更新问题以包含分析仪?