问题标签 [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.
c# - 如何过滤elasticsearch文档中的集合
我有一个在我开始开发之前设计的数据模型。模型具有键值对的集合(它位于嵌套对象中)。我正在尝试过滤此集合上的特定键,如下所示:
例如:我正在尝试获取其键为“a”的值的总和,我尝试了如下查询
此查询返回每个文档中所有值的总和。
我认为这是正常的,目前的数据模型无法做到这一点。我搜索了类似的案例,但找不到。我认为 ElasticSearch 并不打算这样做。但其他团队成员并不相信。
我想也许我应该在程序中执行此操作,将整个文档转换为另一个对象并通过查询获取集合的总和。但在这种情况下,我为什么要使用弹性搜索,我可以使用 nosql 数据库或 redis 来做到这一点。
总和聚合器中的脚本字段可以帮助我吗?有没有办法在当前数据模型的弹性搜索中做到这一点?或者我应该在程序上做吗?
文件的映射
}
实际上我正在尝试计算每个 modelCode 的总和
elasticsearch - Elasticsearch 聚合将结果转换为小写
我一直在玩 ElasticSearch,在进行聚合时发现了一个问题。
我有两个端点,/A和/B。在第一个中,我有第二个的父母。因此,B 中的一个或多个对象必须属于 A 中的一个对象。因此,B 中的对象具有属性“parentId”,其父索引由 ElasticSearch 生成。
我想通过 B 的子属性过滤 A 中的父级。为了做到这一点,我首先按属性过滤 B 中的子级,并获取其唯一的父级 ID,稍后我将使用它来获取父级。
我发送这个请求:
并得到这个回应:
由于某种原因,过滤后的键以小写形式返回,因此无法向 ElasticSearch 请求父级
关于为什么会发生这种情况的任何想法?
elasticsearch - 如何在 ElasticSearch 中对聚合进行排序和限制
例如,我有以下记录,其列为:(Country,City,Date,Income)
我的 sql 为:select country,city,max(date) as maxDate,sum(income) as sumIncome from testTable group by country,city order by maxDate desc,sumIncome desc limit 3
. 所以结果应该是:
我将 ES 聚合编写如下,但它是错误的:
通过我上面的脚本,它得到了错误的结果,如下所示:
elasticsearch - 加速 Elasticsearch 术语聚合/SELECT DISTINCT
我想知道是否可以加速 Elasticsearch 术语聚合。
我的实际目标是为某个查询选择多个不同的字段,例如,我将使用类似这样的查询。它可能会在以后包含嵌套文档:
所以我会找到所有以三星为公司的相关文件,并汇总其所有产品代码和国家代码(它们是整数)。
有没有办法加快这样的查询?我不在乎实际doc_count
带回来的东西,我所需要的只是不同的价值观。也许有某种提示或更好的聚合来完成这项工作?
elasticsearch - 跨多个索引的多个字段上的 Elasticsearch 聚合
我有两个索引 - 一个用于Application
模型,另一个用于Databases
模型(多对多关系)。
每个文档都被非规范化以包含来自其他模型的属性
对供应商名称执行多索引搜索 - 似乎我从两个索引中都得到了正确的结果。
挑战是在 vendor_name 字段上正确聚合
当结果仅来自数据库时,使用以下聚合似乎有效。我也试过field: '*vendor_name'
,但似乎没有用。
我错过了什么?模型应该改变吗?
更新 1:
根据@Andrie-Stefan - 这是两个索引映射的更准确表示(缩写为缩写):
数据库
应用
elasticsearch-aggregation - Elasticsearch sum aggregration
there is documents with category(number), and piece(long) fields. I need some kind of aggregration that group these docs by category and sum all the pieces in it
here how documents looks:
The query result must be like:
any advice ?
elasticsearch - Elasticsearch minBy
elasticsearch 有没有办法从包含最大值的文档中获取字段?(基本上与 scala 中的maxBy类似)
例如(嘲笑):
For which {"grouping":1,"a":2,"b":5},{"grouping":1,"a":1,"b":10}
will return (something like): {"grouped":1,"withMax":5}
,其中最大值来自第一个对象,因为"a"
那里更高。
elasticsearch - ElasticSearch:按字段分组,使用条款聚合并按最低价格聚合
考虑 Articles 和 VariationGroups 之间的 OneToMany 关系。
在 ElasticSearch 中,每个文章文档都有一个“variationGroup”字段。
我使用术语聚合按文章文档的“variationGroup”字段对结果进行分组。
我使用 TopHits 子聚合来获取每个存储桶的第一个文档。
如何获得每个变体组的最低价格?如果我对术语聚合使用 Min 子聚合,则将根据与查询匹配的文档计算最低价格。
我想获得可以归入一个变体组的所有文档的最低价格。
例如,名为“Tshirt with stars”的 VariationGroup 包含 6 篇文章。查询“red Tshirt”返回这 6 篇文章中的 2 篇。
我想获得 6 篇文章的最低价格,而不仅仅是与查询匹配的 2 篇文章。
这甚至可能在同一个电话中吗?
这是相应的 json :