有什么方法可以动态构建elasticsearch bool查询。在我的应用程序中,用户可能一次使用多个过滤器。就像,他可能在一个请求中使用2个过滤器,而在另一个请求中使用3个过滤器。我将该过滤器详细信息存储在哈希图中。因此根据用户请求,查询应通过添加过滤器进行更改。
BoolQueryBuilder query = QueryBuilders.boolQuery()
.must(QueryBuilders.matchQuery("client_code",
"SSSS"));
最佳答案
您可以遍历哈希映射键/值,并为找到的每个键/值对相应地构建bool查询:
BoolQueryBuilder query = QueryBuilders.boolQuery();
for (String key : hashmap.keySet()) {
query.must(QueryBuilders.matchQuery(key, hashmap.get(key)));
}