[英]ES 1.7.3 Elasticsearch Java client: significant terms aggregation unknown values
Out 团队目前正在将遗留项目从 Elasticsearch v1.7.3 迁移到 v7.8.0。 It's in most part written in Scala, so along with this we would like to replace Java client: Maven Repository: org.elasticsearch » elasticsearch » 1.7.3
在工作过程中,我们发现我们非常不确定的代码是平静的,例如:
SignificantTerms.Bucket bucket = //fethced significant terms;
bucket.getDocCount
bucket.getSupersetDf
bucket.getSubsetSize
bucket.getSupersetSize
所以我们根本没有找到getSupersetDf
、 getSubsetSize
和getSupersetSize
代表什么。 在 ES 1.7.3 中。 重要术语聚合的文档: 重要术语聚合 | Elasticsearch 参考 [1.7] | 松紧带
每个桶只doc_count
、 bg_count
和score
。 这些方法代表什么——我们只能猜测。 我们的建议之一是getSupersetDf
的值与bg_count
相同,但这也是主要问题 - Java 客户端和 Elastic 文档中的值之间没有直接映射。
请你帮助我们好吗?
谢谢!
我们可以在ES 源代码中找到它:
@Override
public final XContentBuilder toXContent(XContentBuilder builder, Params params) throws IOException {
builder.startObject();
keyToXContent(builder);
builder.field(CommonFields.DOC_COUNT.getPreferredName(), getDocCount());
builder.field(InternalSignificantTerms.SCORE, getSignificanceScore());
builder.field(InternalSignificantTerms.BG_COUNT, getSupersetDf());
getAggregations().toXContentInternal(builder, params);
builder.endObject();
return builder;
}
您可以看到确实, getSupersetDf
代表bg_count
,它是包含该术语的背景(超集)文档的数量。
这表明, subsetSize
是doc_count
,而getSupersetSize
指向这个计算。 我认为这意味着背景中的文档总数(无论它们是否包含该术语)。
所以总结一下:
bucket.getDocCount
:前台计数,每个重要术语桶中的doc_count
。
bucket.getSupersetDf
:背景计数,每个重要术语桶中的bg_count
。
bucket.getSubsetSize
:前台文档总数,即在桶列表之外的响应中出现的doc_count
。
bucket.getSupersetSize
: 总背景文档计数,出现在桶列表之外的响应中的bg_count
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.