2016-11-06 48 views
-1

我有一個字符串場國家格式例如「SS,SX,美國,IND,來電顯示,TN」,我有一個輸入字符串字段COUNTRYCODE其形式爲「SS」。如何查詢彈性搜索國家/地區中給定countryCode的所有記錄?我試着用matchmatch_phrase查詢,但沒有得到想要的結果。搜索字符串中的索引字段中elasticsearch Java中的字

Query.must(QueryBuilders.matchPhraseQuery( 「國家」,COUNTRYCODE))

回答

0

您可以用bool query,而不是嘗試:

QueryBuilder qb = boolQuery().must(termQuery("countries", countryCode)) 

(你的 「國家」 字段不應該被定義作爲not_analyzed

+0

@Jamie Caffarel我有類型索引的國家:字符串和索引:not_analyzed但無法檢索文件。 國家類似於「BA,AZ,AW,AU,AT,AS,AR,AQ,AO,AN,AM,AL,AI,AG,AF,AE,AD」,我正在使用countryCode「AZ」進行測試 – user2872321

+0

@ user2872321,不,國家字段不應包含'not_analyzed'。它應該被定義爲映射中的字符串(沒有索引) –

+0

@Jamie Caffarel好吧。將嘗試刪除索引並搜索它。非常感謝。我想我現在明白了。如果我們提到not_analyzed它會檢查整個字符串。這是爲什麼它不返回? – user2872321