在弹性搜索映射中,据我所知,index:not_analyzed
意味着它会在不进行分析的情况下对值进行索引。
和
当我们想要指定分析器时,我们可以使用analyzer:<some-analyzer>
。
我见过有些人使用同一领域的设置,如
"property":{
"type":"string",
"index":"not_analyzed",
"analyzer":"analyzer_keyword"
}
上述设置的效果是什么,这似乎与我相矛盾。我错过了什么吗?
答案 0 :(得分:1)
至少在ES 1.6中,如果字段映射到 not_analyzed 并且指定了分析器,则它会覆盖 search_analyzer 。
,即OP中的映射等同于
"property":{
"type":"string",
"index":"not_analyzed",
"search_analyzer":"analyzer_keyword"
}
映射为 not_analyzed 的字段将索引分析器始终设置为keyword analyzer not_analyzed 的默认搜索分析器是关键字但是看起来这可以通过分析器覆盖/ search_analyzer设置老实说对我来说没有意义。
OP中的映射可能与早期版本ES issue兼容,其中看起来像标准分析器是默认搜索分析器,即使是映射为 not_analyzed 的字段