gpt4 book ai didi

elasticsearch - Elasticsearch聚合存储桶始终仅显示10个结果

转载 作者:行者123 更新时间:2023-12-03 01:25:22 24 4
gpt4 key购买 nike

我正在对负载数据使用Elasticsearch聚合,当传递偏移量计数时,响应结果正确显示,但术语聚合结果/存储桶始终仅显示10个结果。

Map<String, BucketStats> hourAggregations = new HashMap<>();
SearchResponse getResponse = client.prepareSearch( ElasticSearchConstants.INDEX ).setTypes( ElasticSearchConstants.TABLE)
.addAggregation( AggregationBuilders.terms( "name")
.field( "empId" )
.subAggregation( AggregationBuilders.stats( "stats" )
.setQuery( query )
.setFrom( 0 )
.setSize( ( offset + 1 ) * 10 )
.execute().actionGet();

Terms terms = getResponse.getAggregations().get("name");
for ( Terms.Bucket bucket : terms.getBuckets() )
{
//buckets showing only 10 results
}

最佳答案

您需要为terms聚合设置一个大小:

Map<String, BucketStats> hourAggregations = new HashMap<>();
SearchResponse getResponse = client.prepareSearch( ElasticSearchConstants.INDEX ).setTypes( ElasticSearchConstants.TABLE)
.addAggregation( AggregationBuilders.terms( "name")
.field( "empId" )
--> .size(100)
.subAggregation( AggregationBuilders.stats( "stats" )
.setQuery( query )
.setFrom( 0 )
.setSize( ( offset + 1 ) * 10 )
.execute().actionGet();
setSize()调用仅影响 hits部分,即影响结果中设置的文档,而不影响聚合。从我的 Angular 来看,您应该调用 setSize(0),因为您只需要聚合值而不是文档。

关于elasticsearch - Elasticsearch聚合存储桶始终仅显示10个结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58448834/

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