ElasticSearch。如何生产" $ in"使用QueryBuilders

时间:2015-06-24 03:51:03

标签: java elasticsearch

我有代码:

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

我需要像Mongo中的查询一样在Elastic中搜索:

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

如何使用Elastic执行此操作?我的代码在列表值的最后一项中搜索。

更新(自己找到解决方案,谢谢大家):

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

2 个答案:

答案 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));