我们的团队目前正在将遗留项目从 Elasticsearch v1.7.3 迁移到 v7.8.0。它大部分是用 Scala 编写的,因此我们想同时替换 Java 客户端: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 中。重要术语聚合的文档:Significant Terms Aggregation | Elasticsearch Reference [1.7] | Elastic
每个桶仅显示 doc_count
、bg_count
和 score
。这些方法代表什么——我们只能猜测。我们的建议之一是 getSupersetDf
与 bg_count
的值相同,但同样是主要问题 - Java 客户端和 Elastic 文档中的值之间没有直接映射。
你能帮助我们吗?
谢谢!
最佳答案
我们可以在 ES source code 中找到它:
@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
,也就是后台(superset)中包含该词条的文档数。
和this , 表示 subsetSize
是 doc_count
,而 getSupersetSize
指向 this calculation .我认为这意味着后台文档的总数(是否包含该词)。
总结一下:
bucket.getDocCount
:前台计数,每个重要的doc_count
术语桶。bucket.getSupersetDf
:背景计数,bg_count
中 每个重要术语桶。bucket.getSubsetSize
:总计 前台文档计数,出现在 遗愿 list 之外的响应。bucket.getSupersetSize
:总计 后台文件计数,出现在bg_count
遗愿 list 之外的响应。
关于java - ES 1.7.3 Elasticsearch Java 客户端 : significant terms aggregation unknown values,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66383503/