当前位置: 首页 > 知识库问答 >
问题:

ES 1.7.3 Elasticsearch Java客户端:重要术语聚合未知值

符畅
2023-03-14

Out团队目前正在将遗留项目从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中。重要术语聚合文档:重要术语聚合| Elasticsearch参考文献[1.7]| Elastic

每个存储桶仅显示文档计数、bg\U计数和得分。这些方法代表什么?我们只能猜测。我们的一个建议是,getSupersetDf的值与bg\u count的值相同,但又是一个主要问题——Java客户端和弹性文档中的值之间没有直接映射。

你能帮帮我们吗?

谢啦!

共有1个答案

景宏盛
2023-03-14

我们可以在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\u count,它是后台(超集)中包含该术语的文档数。

这表明subsetSizedoc_count,而getSupersetSize指向此计算。我认为它意味着后台文档的总数(无论它们是否包含术语)。

综上所述:

>

  • bucket.getDocCount:前台计数,doc_count中的每个有效项桶。

    <代码>铲斗。getSupersetDf:background count,每个有效术语存储桶中的bg\u计数。

    <代码>铲斗。getSubsetSize:total foreground document count,出现在存储桶列表之外的响应中的文档计数。

    bucket.getSupersetSize:后台文档总数,即出现在桶列表之外的响应中的bg_count

  •  类似资料:
    • 问题内容: 我正在尝试使用以下查询对以下数据进行elasticsearch来执行术语聚合,输出将名称分解为标记(请参见下面的输出)。因此,我尝试将os_name映射为multi_field,但现在无法通过它查询。是否可以有没有令牌的索引?例如“ Fedora Core”? 查询: 数据: 输出: 映射: 问题答案: 实际上,您应该像这样更改映射 并且您的aggs应该更改为:

    • 我们目前正在开发一个多语言文档CMS。因此,我们有翻译成不同语言的文件。 对于使用Elasticsearch进行搜索,我们目前使用每种语言(德语、英语、法语……)一个索引,其中同一文档的所有翻译共享相同的ID。 当用户搜索特定术语时,我们希望在所有语言中搜索,但只返回不同ID的列表。据我所知,只有使用以下术语聚合才能做到这一点: 这很好,但是作为弹性搜索文档https://www.elastic.

    • 抱歉,如果已经问过了,但一直潜伏在SO周围,找不到任何适合我需要的东西。 基本上,我在使用ES的第一次快速尝试中试图实现的是在术语聚合中添加更多计数器。 快速尝试一下,我将以下请求发送给ES。 我现在得到的只是样本在文档中显示的内容。 但是,我真的不知道如何在桶中包含更多的内部聚合。会导致这样的文档的东西。 我应该如何构造聚合,以便按桶包含这些聚合?

    • 问题内容: 我有两种日志消息: 第一个消息是已发送消息的类型,第二个消息是确认消息已传递的消息。 它们之间的区别是后缀,我已将其与“ id”分开并可以对其进行查询。 这些消息将按以下格式解析并存储在elasticsearch中: 我想找出哪些消息已成功发送,哪些没有成功。我是Elasticsearch的初学者,所以我真的很努力。 我目前正在尝试术语聚合,但是我所能实现的就是以下代码: 向我显示已发

    • 我有一个存储字符串数组的字段。不同的文档包含不同的字符串集。 现在,我使用这个聚合查询来分析每个文件类型的使用情况。 结果与预期一致。但最近我在删除XML文件支持后更新了此字段。因此,文档的non具有文件类型XML。我可以从这个查询中确认这一点。 总命中计数为零。奇怪的是,当我再次执行上述聚合查询时,我仍然可以将XML视为一个术语。doc count为零。 如果这个XML术语在任何文档中都不存在,

    • 此处为elasticsearch新用户,但存在术语聚合问题。我为187份文档编制了索引,其中包含“名称”、“主机”、“风险”等字段。字段风险有4个唯一值(“关键”、“高”、“中”、“低”、“信息”),我正在运行这样的术语聚合: 我希望得到一个结果,说明我有x个临界值,x个高值等等。问题是,我没有得到返回的桶。 我的Elasticsearch版本是7.12.0有什么想法吗 > 编辑:这是映射: 以下