我知道elasticsearch允许子聚合(即嵌套聚合),但是我想对“第一次”聚合的结果应用聚合(或者在通用的任何查询中-聚合与否)。
具体示例:我记录有关用户操作的事件(为简单起见,我有带有user_id
和action
的文档)。我可以进行查询,计算每个用户执行的操作数量。但是我想找出“活跃用户”的百分比(或计数)(例如,执行了10个以上操作的用户)。理想的结果是所有用户的直方图,显示用户的活跃程度。
有没有办法创建这样的查询?或者除了存储子查询的聚合结果并从中计算直方图之外,我还可以采取其他方法吗?
注意:我见过弹性搜索和“子查询”问题,但它是关于其他东西的,已经超过一年半了,弹性搜索正在积极开发中。
此外,在1.4版中似乎会有可用的脚本度量聚合,但无论如何,这需要为每个用户存储计数器,直到减少阶段。一些“近似解决方案”对我有好处——类似于ES在内部用于聚合的方法。
这是我使用的查询,请注意聚合中的“min_doc_count”。
{
"query": {
"filtered": {
"filter": {
"and": [
{ "term" : { "name": "did x" } },
{ "range": { "created_at": { "gte": "now-7d", "lte": "now" } } }
]
}
}
},
"aggregations": {
"my_agg": {
"terms": {
"field": "user_id",
"min_doc_count": 10,
"size": 0
}
}
}
}
此查询返回指定时间段内具有9个以上事件的存储桶(用户)列表。只需“计数”结果即可获得活动用户的数量。
我已经用数千个事件测试了这种方法,它运行良好。在一定规模上,您将不得不使用Hadoop。
我有以下格式的弹性搜索文档 } } 我的要求是,当我搜索特定字符串(string.string)时,我只想获得该字符串的FileOffSet(string.FileOffSet)。我该怎么做? 谢谢
我正在LDAP服务器上工作。它有弹性搜索。我必须用一些Javascript代码(JSON格式)发送查询。 这是我的查询: 我试图打印所有结果,其中“server”=“server\u name”(该字段是server:server\u name…)。我认为关于弹性搜索的文档太小了。我找到了一些文档,但都是一样的,对新用户没有帮助。这个例子太简单了。 此查询返回所有结果,包括任何筛选器。 Ps:这就
我刚加入弹性搜索公司。而不知道如何在JSON请求中对索引和an类型发出正确的请求?(所以我不想像localhost:9200/myindex/mytype/_search那样在URL中使用索引和类型,而是向localhost:9200/_search发出JSON请求) 我试过这样的东西。但我得到的结果是'AAA'索引而不是'BBB'索引。如何只从bbb索引得到结果或者根本没有结果?
实现此功能的推荐方法是什么?注意,我使用的是查询字符串查询。
我在术语查询中要求弹性搜索中的嵌套字段,其中嵌套字段值应与术语查询中提供的值的数量完全匹配。例如,考虑下面的查询,在这里我们对名为类型的嵌套字段进行查询。 GET资产/_search 索引映射 样本文件: 上述查询应返回字段类型正好有2个值的文档,即“VOD”
如何获得空数组和美国的结果和