[英]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.