1

据我所知,在弹性搜索映射中,这index:not_analyzed意味着它在没有分析的情况下对值进行索引。

当我们想指定一个分析器时,我们可以使用analyzer:<some-analyzer>.

我见过一些人使用这两种设置来处理同一个字段,比如

"property":{
    "type":"string",
    "index":"not_analyzed",
    "analyzer":"analyzer_keyword"
 }

上面设置的效果是什么,对我来说似乎很矛盾。我错过了什么吗?

4

1 回答 1

1

至少在 ES 1.6 中,如果 field 映射到not_analyzed并且指定了分析器,它会覆盖search_analyzer

即 OP 中的映射等价于

"property":{
    "type":"string",
    "index":"not_analyzed",
    "search_analyzer":"analyzer_keyword"
 }

映射为not_analyzed的字段的索引分析器始终设置为关键字分析器not_analyzed的默认搜索分析器是关键字,但是看起来这可以通过分析器/搜索分析器设置覆盖,老实说对我来说没有意义。

可能 OP 中的映射是为了与早期版本的 ES 问题兼容,即使对于映射为 not_analyzed 的字段,标准分析器也是默认搜索分析器

于 2015-07-30T04:19:42.037 回答