2015-06-24 50 views
2

「在$」我有代碼:ElasticSearch。如何生產出QueryBuilders

List<String> values = new ArrayList<>(); 
BoolQueryBuilder queryBuilder = boolQuery(); 
queryBuilder.must(matchQuery("field", values)); 

我需要彈性搜索這樣的查詢中蒙戈:

{ 
    field : {'$in' : values} 
} 

如何使用彈性做到這一點?我的代碼在List值的最後一項中搜索。

UPDATE(找到解決辦法我自己,感謝所有):

queryBuilder.must(termsQuery("field", values)); 
+0

你的意思是多字段搜索,不是嗎? – codeaholicguy

回答

0

使用 「termsQuery」 而不是 「matchQuery」:

queryBuilder.must(termsQuery("field", values));