gpt4 book ai didi

java - Jest Elasticsearch 具有多个匹配字符串的查询构建器查询

转载 作者:行者123 更新时间:2023-12-02 01:58:05 25 4
gpt4 key购买 nike

我正在尝试使用 Jest 查询 Java 中的 Elasticsearch 。我正在使用查询生成器来构建查询。

QueryBuilder matchQuery = QueryBuilders.boolQuery()
.must(QueryBuilders.matchQuery("id", "3434"))
.must(QueryBuilders.matchQuery("name", "name"))
.must(QueryBuilders.matchQuery("action", "login"))
.must(rangeQuery);

//i have this map now
Map<String , String> parameters = new HashMap<>();
parameters.put("id", "3433");
parameters.put("name", "name");
parameters.put("action", "login");

如果有人能告诉我这是否可以动态构造,就像 matchQueries 一样,那就太好了。例如,我会有三个匹配查询,但我会有更多。我可以将匹配查询属性放在 map 中。但是如果我迭代我们如何定义这个 boolQuery ?有人对此有任何想法吗?

正在寻找这样的东西

 QueryBuilder matchQuery = QueryBuilders.boolQuery()
.must(QueryBuilders.matchQuery(map.key, map.value))

.must(rangeQuery);

但是我该如何动态构建它呢?

最佳答案

您可以简单地迭代 map 并将每个条件添加到查询中,如下所示:

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

关于java - Jest Elasticsearch 具有多个匹配字符串的查询构建器查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52041057/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com