Spring boot 制造;查询+;“聚合”;elasticsearch,使用java查询dsl
可以使用java查询dsl使用聚合(elasticsearch)构建查询?elasticsearch提供了一个客户端库,帮助您构建搜索。你可以找到更多关于它的信息。 下面是一个如何做到这一点的示例:Spring boot 制造;查询+;“聚合”;elasticsearch,使用java查询dsl,spring-boot,
elasticsearch,dsl,Spring Boot,
elasticsearch,Dsl,可以使用java查询dsl使用聚合(elasticsearch)构建查询?elasticsearch提供了一个客户端库,帮助您构建搜索。你可以找到更多关于它的信息。 下面是一个如何做到这一点的示例: // build the client HttpHost host = new HttpHost("localhost", 9200, "http"); RestHighLevelClient client = new RestHighLevelClient(RestClient
// build the client
HttpHost host = new HttpHost("localhost", 9200, "http");
RestHighLevelClient client = new RestHighLevelClient(RestClient
.builder(new HttpHost[]{host}));
// build the search (set the conditions here)
BoolQueryBuilder boolQueryBuilder = boolQuery();
boolQueryBuilder.must(QueryBuilders.rangeQuery("age")
.from(25)
.to(40));
// build the aggregations (set the aggregations here)
TermsAggregationBuilder groupByGender = AggregationBuilders.terms("gender")
.field("gender")
.size(5);
SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
sourceBuilder.query(boolQueryBuilder);
sourceBuilder.aggregation(groupByGender);
// create and execute the search request
SearchRequest request = new SearchRequest()
.indices("customers")
.types("customer")
.allowPartialSearchResults(false)
.source(sourceBuilder)
.requestCache(true);
SearchResponse response = client.search(request, RequestOptions.DEFAULT);
这将产生如下结果:
GET customers/customer/_search
{
"query": {
"bool": {
"must": [
{
"range": {
"age": {
"gt": 25,
"lt": 40
}
}
}
]
}
},
"aggs": {
"gender": {
"terms": {
"field": "gender",
"size": 5
}
}
}
}