elasticSearch用java查询问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了elasticSearch用java查询问题相关的知识,希望对你有一定的参考价值。

如下sql 用 ES 的java API 如何实现
sql:
select c,d from my_table where a = 1
and (b = 2 or b=3)
group by c,d

请大神优先回答 括号 or 的实现吧

你这个查询用filter、must皆可,推荐filter

String index = "indexName"; // 你的index名称
String type = "my_table";

BoolQueryBuilder boolQuery = QueryBuilders.boolQuery();
// boolQuery.must(QueryBuilders.termQuery("a", 1));
// boolQuery.must(QueryBuilders.termsQuery("b", 2, 3));
boolQuery.filter(QueryBuilders.termQuery("a", 1));
boolQuery.filter(QueryBuilders.termsQuery("b", 2, 3));

SearchResponse searchResponse = client.prepareSearch(index).setTypes(type)
                                                .setQuery(boolQuery)
                                                .addSort("c", SortOrder.ASC)
                                                .addSort("d", SortOrder.ASC)
                                                .storedFields("c", "d")
                                                .get();
参考技术A 查询器里的should是或,must是且

以上是关于elasticSearch用java查询问题的主要内容,如果未能解决你的问题,请参考以下文章

elasticSearch用java查询问题

如何使用 ElasticSearch-Rails 查询 dsl 返回相关关系

CentOS上安装elasticsearch

SpringBoot集成ElasticSearch,实现模糊查询,批量CRUD,排序,分页,高亮

Elasticsearch如何在Elasticsearch中查找相似的术语

elasticsearch基本使用