问题标签 [elasticsearch-aggregation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2464 浏览

elasticsearch - Elasticsearch:深度嵌套聚合下的reverse_nested聚合不起作用

弹性搜索版本:2.3.3

基本上标题说明了一切。如果reverse_nested在第二个嵌套聚合下使用,尽管文档似乎是通过reverse_nested(参见"doc_count"结果中的最后一个字段)来限定范围的,但它后面的聚合无法以某种方式工作。

这里我准备了一个例子——一个文件是一个学生,上面有注册日期和考试历史。

映射:

测试文件:

聚合查询(没有实际意义):

结果:

...您可以在其中看到聚合“newest_exam_date”不起作用。这是一个错误还是我做错了什么?

0 投票
0 回答
98 浏览

elasticsearch - ElasticSearch TopHits 聚合大小

当我按字段进行聚合时,我也会进行subAggregation 并且我希望 ES 将它所拥有的topHits全部返回给我。TopHits但是,如果我将 size 指定为Integer.MAX_VALUE,它不会给我任何回报。为什么?

而且我没有与 key 聚合的桶"aggregation"

0 投票
1 回答
288 浏览

elasticsearch - ElasticSearch 聚合受到最小日期的影响

聚合后如何获得最小日期?我按某个字段进行了聚合,然后subAggregation(AggregationBuilders.min("createdDate")是这个日期,然后topHits是 subAggregation。但它返回我 3 次点击,而不是 1 次这个值。

0 投票
1 回答
1034 浏览

elasticsearch - 唯一值的日期直方图

我正在使用 Elasticsearch 2.3,对于用户在我的网站上访问的每个网页,我都会生成一条包含用户会话 ID 和当前时间戳的记录。
因此,我几乎没有具有相同会话 ID 但时间戳不同的记录。
我正在尝试date_histogram从用户记录中创建一个具有唯一会话 ID 的。

创建没有唯一性的直方图很容易:

但是是否有可能拥有具有唯一值的日期直方图(例如,每个唯一会话 id 的第一次出现)?

0 投票
1 回答
17118 浏览

elasticsearch - Elasticsearch 数组值计数聚合

样本文件

预期输出

我的查询

我可以使用下面的查询获得“ attribCount ”聚合。但我不知道如何获取每个属性值的计数。

当我使用 attributes.value 进行聚合时,它会给出总数。但我需要将它列在预期输出中给出的名称值下。

0 投票
1 回答
1038 浏览

regex - Elasticsearch:如何按特定的 URL 路径过滤和分组?

我有一个索引,网址,如下所示:

该路径将存储来自 url 的 PATH 部分,例如:

将存储为:

我正在存储各种路径,所以可能更像:

我正在尝试找出每个路径具有的唯一网页浏览量。我不确定我应该怎么做,我应该使用正则表达式吗?

我想它看起来像(伪代码):

0 投票
0 回答
375 浏览

python - 使用 python elasticsearch 库在查询字典中添加 aggs

我正在尝试在 Python 的 sdk 中为 elasticsarch 添加一个 aggs 查询。Btu 我似乎无法让它工作。例如

执行

在没有 'aggs' 键的情况下执行相同的验证正确。如何在 dict 之类的查询中传递聚合以与 python 库一起使用?

0 投票
0 回答
85 浏览

elasticsearch - 弹性搜索 groupby 许多字段聚合

我不想通过使用 elasticsearch 聚合来实现以下组。SQL 等价物类似于(有点):

聚合会是这样的吗?

我不确定我是否正确理解了聚合的事情。我对吗?

创建了测试来模拟解决方案。我为每个存储桶名称和键或指标和值以 list[dict(str, T)] 的形式提取聚合

测试随机成功和失败。结果时间也不相等(尽管我提供的日期时间始终与您从查询中看到的聚合和新查询相同。)

试验结果:

0 投票
1 回答
988 浏览

elasticsearch - 如何按根文档中的字段对嵌套聚合中的热门命中进行排序?

我正在嵌套聚合中执行热门聚合。我希望通过根文档中的时间戳字段来排序最高命中,以便获得嵌套文档的最新版本(可能被索引到多个根文档中)。虽然语法似乎让我这样做,但提取的排序键似乎是“垃圾”;每个文档的数量都相同。(以下只是一个更复杂的聚合的片段——否则,该方法可能没有意义——但它具有我的问题的本质。)

在我的结果中,排序键与任何这样的“_index_time”都不匹配,并且更改排序顺序没有效果。“_index_time”在根文档中被声明为整数。如果我将查询中的“_index_time”更改为一些无意义的字符串,查询会出错,所以我知道我的要求是有意义的,但它没有执行排序——或者,至少,它没有正确要排序的数据。

如何正确排序根属性上的嵌套聚合?

或者,我尝试将 copy_to: 'nested_doc._index_time' 添加到 '_index_time' 声明中,虽然这让我将 'nested_doc._index_time' 指定为排序键,但它仍然导致无意义的排序键。该字段是否未正确定义?

0 投票
1 回答
966 浏览

elasticsearch - Elasticsearch 基数聚合给出错误的结果

两个聚合中 PARTY_ID 的计数应该相同。在一种情况下,它是 3000,另一种情况下,它是所有不相等的值 (2675 + 244 + 41 + 6 + 2 = 2950 ) 的总和。可能是什么原因?

结果 :