在java中动态构建elasticsearch bool查询

时间:2016-12-10 05:38:59

标签: java elasticsearch

有没有办法动态构建elasticsearch bool查询。在我的应用程序中,用户可以一次使用多个过滤器。就像,他可以在一个请求中使用2个过滤器,为另一个请求使用3个过滤器。我将这些过滤器详细信息存储在hashmap中。所以根据用户请求,查询应该通过添加过滤器来改变。

BoolQueryBuilder query = QueryBuilders.boolQuery()
                    .must(QueryBuilders.matchQuery("client_code",
                            "SSSS")); 

1 个答案:

答案 0 :(得分:4)

您可以遍历您的hashmap键/值,并相应地为您找到的每个键/值对构建bool查询:

BoolQueryBuilder query = QueryBuilders.boolQuery();
for (String key : hashmap.keySet()) {
    query.must(QueryBuilders.matchQuery(key, hashmap.get(key)));
}