2017-03-02 45 views
0

我正在使用ES版本2.3。我有索引一些文件,其结构如下:ElasticSearch not_analyzed字段的行为不一致

{ 
"BUSINESSLINE" :"ABC CORP", 
"NAME" : "John" 
.... 
... 
} 

字段BUSINESSLINE是not_analyzed字符串。

的问题是,该查询返回的结果:

{ 
     "query": { 
     "multi_match" : { 
      "query": "ABC", 
      "fields": [ "_all" ] 
     } 
     } 
    } 

但是这一次没有(这表明没有命中!):

{ 
     "query": { 
     "multi_match" : { 
      "query": "ABC", 
      "fields": [ "BUSINESSLINE " ] 
     } 
     } 
    } 

任何帮助表示赞赏,我想谷歌和研究,但我无法找到任何理由。 谢谢!

+0

您可以检查文档中是否有其他字段包含此字词('ABC'或'abc'或'Abc')? – avr

+0

不,它匹配BUSINESSLINE,我不能在这里分享_source,但我可以清楚地看到它匹配“BUSINESSLINE” –

回答

0

是的,你是对的。该查询匹配文档,因为_all已提交,这是一个由空格分隔符连接所有字段构建的大字符串。它也是analysed这就是为什么你的查询正在匹配。

您可以阅读更多关于它here