问题标签 [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 2.3,并且正在尝试使用管道聚合执行两步计算。我只对管道聚合的最终结果感兴趣,但 Elasticsearch 会返回所有存储桶信息。
由于我有大量的桶(数千万或数亿),这是令人望而却步的。不幸的是,我找不到方法告诉 Es 不要返回所有这些信息。
这是一个玩具示例。我有test-index
一个文档类型的索引obj
。obj
有两个字段,key
并且values
.
我想获得具有相同skey
的最小值的平均值(在所有 svalue
上)。最小值的平均值。obj
key
Elasticsearch 允许我这样做:
但是这个查询返回每个桶的最小值,虽然我不需要它:
有没有办法摆脱里面的所有信息"buckets": [...]
?我只对avg_min_value
.
在这个玩具示例中这似乎不是问题,但是当不同key
s 的数量不大(数千万或数亿)时,查询响应大得令人望而却步,我想对其进行修剪。
有没有办法用 Elasticsearch 做到这一点?还是我对数据的建模错误?
注意:预先聚合每个键的数据是不可接受的,因为match_all
我的查询部分可能会被复杂和未知的过滤器替换。
NB2:size
在我的聚合中更改为非负数terms
是不可接受的,因为它会改变结果。
elasticsearch - 通过 Elasticsearch 中的查询聚合文档计数(如 solr 中的 facet.query)
我有一个主查询,我需要几个子查询的匹配数。用solr的话来说,我需要一个facet.query。我缺少的是一个简单的doc_count
聚合,比如value_count 聚合。
有什么建议么?
我发现了两种我不喜欢的可能解决方案:
- 使用带有value_count指标的过滤器聚合:
_id
例子:
- 使用多搜索 API
例子:
我看到解决方案 2 更快,但可以想象match_main
为复杂的查询!因此,如果有一个doc_count:{}
而不是value_count:{"field":"_id"}
.
但回到我的基本问题:elasticsearch 中的 solr 对应物是什么facet.query
?
elasticsearch - Logstash如何做ES移动平均预测?
我正在使用 Elasticsearch 2.3.2 和 Logstash 2.3.3。我从https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-pipeline-movavg-aggregation.html找到了移动平均线可以做预测。我知道只能在 ES 中进行查询,但我不确定我应该如何使用 logstash 进行查询。我有一个 logstash 文件,它每 15 秒读取一个存储 CPU 使用率的 csv 日志文件。我应该将以下内容包含到相关索引的logstash输出json文件中作为输出映射吗?
这是我的logstash json 文件
是否可以将其作为图表显示在 Kibana 中?
elasticsearch - 术语聚合(实现分层分面)查询性能慢
我在弹性搜索中索引指标名称。度量名称的格式为foo.bar.baz.aux
。这是我使用的索引。
上述索引为度量名称创建了以下术语foo.bar.baz
如果我有一堆指标,如下所示
我必须编写一个查询来获取第 n 级令牌。在上面的例子中
除了写术语聚合之外,我想不出任何其他方式。要找出 的 2 级标记a.b
,这是我提出的查询。
这将导致以下存储桶。我解析输出并从那里抓取 [c, m] 。
到目前为止,一切都很好。该查询适用于大多数租户(tenantId
term
上面的通知查询)。对于某些拥有大量数据(大约 1 百万)的租户,性能确实很慢。我猜所有的术语聚合都需要时间。
我想知道术语聚合是否是此类数据的正确选择,并且还在寻找其他可能的查询类型。
elasticsearch - ElasticSearch如何显示所有匹配日期范围聚合的文档
问题:
如何进行日期范围聚合并显示与相关日期桶匹配的所有文档,而不是doc_count
.
聚合:
回复:
也许我需要做一些子聚合或其他事情?
有任何想法吗?
elasticsearch - Elasticsearch:聚合两个字段
不知道如何提出问题。我正在使用 Elasticsearch 2.2。
让我们从一个由 5 个文档组成的数据集示例开始:
called_entity总是有一个uuid。 coverage_entity可以是空的,或者有一个uuid。
我想要的是在called_entity.uuid或coverage_entity.uuid上进行聚合,然后计算文档的总量和successful_transfers 的总和。因此,对于这 5 个文档,我会得到类似的结果:
问题是这意味着可以在多个聚合中使用同一个文档,只要聚合键在 called_entity.uuid 或 coverage_entity.uuuid 中(我什至不确定这是否可能,这就是我发布的原因这里)。
我目前正在做的只是在called_entity.uuid字段上进行聚合,但这当然还不够:
这给了我类似的东西:
...这不是我想要的。那么,我如何聚合多个值,或者对于给定的聚合,如何根据所有文档中存在的值(不仅仅是聚合中的一个)计算数据?
谢谢你。
elasticsearch - Elasticsearch 中的模糊桶聚合
Elasticsearch 支持模糊搜索查询:https ://www.elastic.co/guide/en/elasticsearch/guide/2.x/fuzzy-match-query.html
它说“......桶是动态构建的 - 每个唯一值一个。”
是否可以通过模糊术语将这两个特征和桶结合起来?这样例如“America”和“Amrica”将属于同一个桶?(使用“术语”存储桶,它们属于 2 个单独的存储桶,使用“模糊”搜索,返回两条记录。
我正在尝试按“关键字”分组,包括拼写错误-也许有不同的方法可以解决?(蛮力是对每个“关键字”运行“模糊”搜索并手动添加数字......)
elasticsearch - 对字段进行聚合并在弹性搜索中返回总和
我正在努力寻找在过滤另一个字段后对字段进行聚合的方法。但是,Elastic 搜索文档并不容易理解。
可以说我的映射:
所需的聚合:
这不是我的要求,但答案有助于我理解文档。
ruby-on-rails - Searchkick 中的嵌套聚合
我用 id 和 name 为我的模型颜色编制索引,当使用 Searchkick 聚合时,我需要在一个哈希中同时包含 id 和 name 的结果,而不是分开。
如何做到这一点?
这就是它现在的工作方式:
询问
结果
如您所见,id 和 name 在单独的哈希中,因此关系被破坏。
这样做的目的是生成各种过滤器,其中我需要后端 ID 和前端名称。如果使用 searchkick 无法做到这一点,是否还有其他“解决方法”如何实现这一目标?
谢谢你,米罗