问题标签 [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 回答
1705 浏览

elasticsearch - 如何使用 Elasticsearch 进行价格比较

我必须建立一个价格比较系统。我的想法是使用 Elasticsearch 来构建。现在我有这个问题。如何汇总每个产品的卖家价格。

作为示例,请参阅此屏幕截图: 在此处输入图像描述

让我说我有这个简单的映射:

我可以汇总或分面每个产品的价格(最低、最高和卖家数)吗?

或者有没有办法用父子关系来构建这个东西?

0 投票
2 回答
7748 浏览

elasticsearch - 具有多个排除项的 Elasticsearch 聚合查询

我在 ES 数据库中有一堆公司数据。我正在寻找每家公司出现多少文档的计数,但我在aggregation查询时遇到了一些问题。我希望排除诸如“公司”或“公司”之类的术语。到目前为止,我已经能够按照下面的代码一次成功地完成一个学期。

哪个返回

理想情况下,我希望能够做类似的事情

但我一直无法找到一种不会引发错误的方法

我查看了 ES 文档中聚合的“术语”部分,只能找到单个排除的示例。我想知道是否可以排除多个术语,如果可以,这样做的正确语法是什么。

注意:我知道我可以将该字段设置为“not_analyzed”并获取完整公司名称的分组,而不是拆分名称。但是,我犹豫要不要这样做,因为分析允许存储桶更容忍名称变化(即 Microsoft Corp 和 Microsoft Corporation)

0 投票
1 回答
1476 浏览

elasticsearch - 弹性搜索总和聚合中的问题

我正在尝试使用我自己的参数从弹性搜索站点获取示例,但它不起作用。

询问:

我得到的错误:

这里的分片失败是什么?它说没有 aggs 解析器,我应该在这里做什么?基本上,我需要执行 sum 之类的操作,然后从中找出最大值。我应该如何修改上面的代码来获得它?

0 投票
1 回答
2166 浏览

elasticsearch - 是否可以将 ElasticSearch 聚合的结果放回索引中?

所以我有一个索引,其中包含从主机 A 到主机 B 的 ping 数据,我的数据如下所示:

目标是在移动窗口(例如最后一小时、最后一天等)上存储 ping 值的第 90 个百分位数数据(上面的“值”)。

我知道我可以通过聚合来做到这一点,但我的问题如下:

ElasticSearch 是否支持将聚合(或相关的查询)的输出自动添加回索引的方法?

我知道我可能只是获取输出,调整字段,然后使用一些帮助应用程序将数据放回原处,但很好奇这是否只能使用 ES。

要使用等效的 SQL 示例,我会寻找这样的东西:

0 投票
1 回答
2786 浏览

elasticsearch - ElasticSearch 的多个指标子聚合情况

我知道 Elasticsearch 支持带有分桶的子聚合(其中分桶聚合可以有分桶或度量子聚合)。度量聚合不能进行子聚合。可能这是有道理的,但这是用例。

我有术语聚合作为父母。并使用另一个term聚合作为它的子级。childterm有一个类型为的子聚合top_hitstop_hits是一个度量聚合,因此它不能采用任何子聚合。现在需要avg在组合中加入聚合。Given是聚合树中的最后一个聚合,因为它是一个度量聚合,所以它top_hits不能avg作为它的子级。top_hits

以下是所需的聚合级别。(当然它是无效的,因为它top_hits是一个度量聚合并且对于avg聚合也是如此。

解决此问题的解决方法或最佳方法是什么?

0 投票
1 回答
1152 浏览

elasticsearch - elasticsearch:使用聚合值进行过滤

我正在使用嵌套映射(如下),它代表一个“任务”,并且有一个“请求”的嵌套元素,该元素正在朝着该任务取得进展。

我试图找到所有尚未取得进展的任务,即嵌套对象上的“最大”聚合为空的所有文档。这需要能够过滤聚合的结果——这就是我有点卡住的地方。

我可以按聚合结果排序。但我找不到过滤方法。有这样的能力吗?

映射:

按聚合查询排序(并寻找过滤器......):

0 投票
4 回答
4439 浏览

elasticsearch - 将聚合限制在 elasticsearch 中的前 X 个命中

ElasticSearch 根据查询的所有命中构建聚合结果,独立于 from 和 size 参数。这是我们在大多数情况下想要的,但我有一个特殊情况,我需要将聚合限制为前 N 个命中。限制过滤器不适合,因为它不获取最好的 N 个项目,而只获取与查询(每个分片)匹配的第一个 X,而与它们的分数无关。

有什么方法可以构建一个命中数上限为 N 的查询,以便能够构建一个仅限于前 N 个结果的聚合?如果是这样怎么办?

辅助问题:限制匹配文档的分数可能是一种替代方法,即使在我的情况下我需要一个固定的界限。min_score 参数是否影响聚合?

0 投票
1 回答
9775 浏览

elasticsearch - Elasticsearch:聚合查询结果

我有一个包含产品的弹性搜索索引,我可以查询不同的搜索词。每个产品都包含一个字段shop_id来引用它所属的商店。现在我尝试显示所有持有我查询产品的商店的列表。(按商店过滤)据我阅读类似问题,我必须使用聚合。最后我建立了这个查询:

这应该基于 搜索playstation和聚合结果shop_id。可悲的是它只会返回

数据太大,数据将大于 [8534150348] 字节的限制。

我还尝试了只返回 2 个结果的查询。该指数包含超过 90,000,000 种产品。

0 投票
2 回答
2958 浏览

elasticsearch - elasticsearch聚合中的动态时区偏移?

我正在汇总每个都有时间戳的文档。时间戳是 UTC,但每个文档也有一个本地时区 ( "timezone": "America/Los_Angeles"),该时区在文档之间可能不同。

我正在尝试date_histogram aggregation基于本地时间,而不是 UTC 或固定时区(例如,使用 option "time_zone": "America/Los_Angeles")。

如何在聚合之前将每个文档的时区转换为其本地时间?

这是简单的聚合:

0 投票
1 回答
975 浏览

elasticsearch - 将基数聚合与“位置”条件相结合?

我正在尝试根据字段创建不同的计数命中,但我被卡住了。

如何将基数和条件结合起来"select distinct(lastname) from table where name like 'George%'"

如何在 Cardinality 中使用“where”条件?