es java聚合查询只有10_关于elasticsearch聚合查询只有10条数据(java)
时间: 2023-07-10 08:09:24 浏览: 93
Elasticsearch的聚合查询默认返回的是10条数据,但是可以通过设置`size`参数来改变返回的结果数量。以下是一个Java聚合查询的示例代码,其中使用了`size`参数来控制返回的结果数量:
```java
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.common.transport.InetSocketTransportAddress;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.search.aggregations.AggregationBuilders;
import org.elasticsearch.search.aggregations.bucket.histogram.DateHistogramInterval;
import org.elasticsearch.search.aggregations.bucket.histogram.Histogram;
import org.elasticsearch.search.aggregations.bucket.terms.Terms;
import org.elasticsearch.transport.client.PreBuiltTransportClient;
import java.net.InetAddress;
import java.net.UnknownHostException;
public class ElasticsearchAggregationQueryExample {
public static void main(String[] args) throws UnknownHostException {
//创建客户端
TransportClient client = new PreBuiltTransportClient(ElasticsearchConstants.SETTINGS)
.addTransportAddress(new InetSocketTransportAddress(
InetAddress.getByName(ElasticsearchConstants.HOST),
ElasticsearchConstants.PORT));
//聚合查询
SearchResponse response = client.prepareSearch(ElasticsearchConstants.INDEX)
.setQuery(QueryBuilders.matchAllQuery())
.addAggregation(
AggregationBuilders.terms("group_by_field_name").field("field_name").size(20)
.subAggregation(AggregationBuilders.dateHistogram("group_by_date")
.field("date_field_name")
.dateHistogramInterval(DateHistogramInterval.MONTH)
.format("yyyy-MM-dd")
.subAggregation(AggregationBuilders.avg("avg_field_name").field("field_name"))))
.execute().actionGet();
//获取聚合结果
Terms groupByField = response.getAggregations().get("group_by_field_name");
for (Terms.Bucket bucket : groupByField.getBuckets()) {
String key = bucket.getKeyAsString();
Histogram groupByDate = bucket.getAggregations().get("group_by_date");
for (Histogram.Bucket dateBucket : groupByDate.getBuckets()) {
String date = dateBucket.getKeyAsString();
Double avgValue = dateBucket.getAggregations().get("avg_field_name").getValue();
System.out.println(key + " " + date + " " + avgValue);
}
}
//关闭客户端
client.close();
}
}
```
在聚合查询中使用了`.size(20)`方法来设置返回的结果数量为20条。你可以根据自己的需求来设置不同的`size`值。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)