elasticsearch elasticsearch中使用匹配短语/术语的奇怪差异
最近,我在使用elasticsearch时遇到了一个非常奇怪和令人沮丧的问题。我已经使用NEST API索引了大约100万个文档。索引包含一个全文字段,如下所示:
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”这样查询时(我在这里
{"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”
能否更新问题以包含分析仪?