问题标签 [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.
elasticsearch - ElasticSearch 聚合信息按月分组
我正在处理一个 ElasticSearch 查询,该查询应该将日期字段现在为 1 年前的所有文档返回给我,然后按月对它们进行分组(给我每个月的总计数),但我无法编写此查询。
这就是我所拥有的:
我正在像这样运行查询:
POST https://my-es-cluster-url.com
,但我不断收到此错误:
elasticsearch - Elasticsearch:使用桶值过滤聚合
不知道如何提出问题。我正在使用 Elasticsearch 2.2。
让我们从一个由 5 个文档组成的数据集示例开始:
called_entity总是有一个uuid。 coverage_entity可以是空的,或者有一个uuid。
我使用脚本在called_entity.uuid或coverage_entity.uuid上进行聚合:
所以现在,聚合已经从header.called_entity.uuid或header.coverage_entity.uuid生成了术语。
如何使用聚合键的值过滤我的聚合?例如,如果我想计算,对于每个存储桶,有多少文档的uuid仅取自header.called_entity.uuid。像这样的东西:
elasticsearch - elasticsearch中桶内的唯一术语
我有映射数据和示例如下:
我将拥有数百万条这样的记录,这些记录也有重复,因为它是用户活动日志,我想使用日期列根据日期直方图中的唯一 userId 对它们进行分组。使用基数根据日期直方图获取唯一计数非常简单。
如果我想根据唯一的用户存储桶获得最终结果并对用户字段进行分组并根据他们的个人资料获取他们的计数,如下所示。假设在 1 月份,我们有大约 10,000 个活动,但只有 1,000 个唯一用户,并且基于这些用户,我们希望获取用户字段数据以查看人口统计数据。意思是 10,000 条记录,如果对 userId 执行基数,我将有 1,000 条记录。基于这 1,000 条记录,我需要得到如下结果。如何将 10,000 条记录合并为不同的 1,000 条记录,并从这些记录中得出以下答案。
总之,是否有任何通用的方法来计算,然后通过使用术语甚至使用管道聚合来计算结果?
请帮忙。
elasticsearch - ElasticSearch:日期时间字段上的聚合
我正在尝试从日期时间字段中获取汇总信息:
- 按月获取有多少文档(不是 YEAR/MONTH!,ONLY MONTH):所以,一个'groupby(month(datetime_field))'。
谢谢大家。
elasticsearch - 在弹性搜索中返回唯一结果
我有一个用例,其中我有类似的数据
预期成绩:
我想通过parentid
. 虽然我可以使用顶级聚合,但我不知道如何对存储桶进行分页。因为有更多parentid
不同的机会。所以我的桶数组会很大,我想展示所有这些,但通过分页来展示它们。
elasticsearch - How to get Elastic Search aggregation to mirror the query filtering logic?
On our site we allow users to filter Elastic Search results with a set of filters divided into categories:
These are just matching on literal tags that can appear in a field of the document, like:
Our existing query joins all the filter terms under AND, so if the user selects A1
, B1
, and B2
, we filter by (A1 AND B1 AND B2)
.
We want to change this to "OR within each filter category", and "AND across categories", so that you'd get: (A1) AND (B1 OR B2)
.
Now, the wrinkle: we also use a "terms" aggregation on the "tags" field to predict how many items would come back from applying the next filter. On our UI this looks like:
Here, changing the filter logic to AND/OR breaks the counts that come back from the "terms" aggregation, because the terms aggregation is still predicting A1 AND B1 AND B2
. Adding B3
would get us A1 AND B1 AND B2 AND B3
and thus narrow the counts from the aggregations, whereas it would actually widen the scope of the results (we'd want (A1) AND (B1 OR B2 OR B3)
).
Is there a way to express this in aggregations so that the filtering logic and the aggregation counts match?
elasticsearch - 如何在kibana中绘制聚合数据
我是kibana的新手。我在 ES 中存储了以下数据:
所以,基本上我有每个campaign_id 的计数,它已经是聚合数据。我想要一个简单的条形图,它绘制campaign_id
X 轴所在位置campaign_id
和 Y 轴所在位置的计数。
我得到的点击是campaign_id
作为唯一计数而不是计数字段中的实际值。提前致谢!
elasticsearch - ElasticSearch Java API 排序聚合
我有术语聚合,我需要按另一个字段(日期)对结果桶进行排序。或者我需要添加 2 个子聚合,其中最大(和热门)和最小(和热门)。
我没有找到任何允许我这样做的 API。
我想我可以为主要术语聚合添加最高命中的最大子聚合,并创建另一个具有最高命中子聚合的最小术语聚合,但这将是一项繁重的工作。
elasticsearch - 在 Elasticsearch 中聚合时转换字段类型
我有一组要对其执行聚合的文档: sum the values of 'sessions' field 。“会话”的字段类型是字符串,在执行聚合时必须将其转换为整数字段。
防爆文件:
我的查询:
错误:
为什么显示缺少属性异常?如何引用脚本中的“会话”字段?
更新:解决方案是在索引之前执行正确的映射,这要归功于Val
快速响应。
elasticsearch - 计算弹性搜索聚合的结果
我有一个具有以下结构的文件:
我正在使用此查询应用两个聚合:
这就是我得到的输出,这正是我想要的:
}
现在我想要的是出于某种原因将两个聚合的输出分开。我应该如何在上面的查询中做到这一点,最终输出是我唯一想要的。
更新: 我尝试使用此查询:
但收到此错误:"reason": "Invalid pipeline aggregation named [sessions] of type [bucket_script]. Only sibling pipeline aggregations are allowed at the top level"