我有代码:
List<String> values = new ArrayList<>();
BoolQueryBuilder queryBuilder = boolQuery();
queryBuilder.must(matchQuery("field", values));
我需要像Mongo中的查询一样在Elastic中搜索:
{
field : {'$in' : values}
}
如何使用Elastic执行此操作?我的代码在列表值的最后一项中搜索。
更新(自己找到解决方案,谢谢大家):
queryBuilder.must(termsQuery("field", values));
答案 0 :(得分:0)
检查条款过滤器: https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-terms-filter.html
{
"constant_score" : {
"filter" : {
"terms" : { "user" : ["kimchy", "elasticsearch"]}
}
}
}
答案 1 :(得分:0)
使用&#34; termsQuery&#34;而不是&#34; matchQuery&#34; :
queryBuilder.must(termsQuery("field", values));