2017-03-02 68 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