elasticsearch 弹性搜索聚合和
我正在使用elasticsearch 1.0.2,我想使用一个带有聚合函数(如sum()的查询)的查询对其进行搜索 假设我的单记录数据是这样的
elasticsearch 弹性搜索聚合和,
elasticsearch,nosql,
elasticsearch,Nosql,我正在使用elasticsearch 1.0.2,我想使用一个带有聚合函数(如sum()的查询)的查询对其进行搜索 假设我的单记录数据是这样的 { "_index": "outboxpro", "_type": "message", "_id": "PAyEom_mRgytIxRUCdN0-w", "_score": 4.5409594,
{
"_index": "outboxpro",
"_type": "message",
"_id": "PAyEom_mRgytIxRUCdN0-w",
"_score": 4.5409594,
"_source": {
"team_id": "1bf5f3f968e36336c9164290171211f3",
"created_user": "1a9d05586a8dc3f29b4c8147997391f9",
"created_ip": "192.168.2.245",
"folder": 1,
"report": [
{
"networks": "ec466c09fd62993ade48c6c4bb8d2da7facebook",
"status": 2,
"info": "OK"
},
{
"networks": "bdc33d8ca941b8f00c2a4e046ba44761twitter",
"status": 2,
"info": "OK"
},
{
"networks": "ad2672a2361d10eacf8a05bd1b10d4d8linkedin",
"status": 5,
"info": "[unauthorized] Invalid or expired token."
}
]
}
}
假设我需要获取报告字段中状态为2的所有成功消息的计数。收藏中会有很多唱片。我想记录所有发布的成功消息的报告
我尝试了以下代码
//////////////编辑
{
"size": 2000,
"query": {
"filtered": {
"query": {
"match": {
"team_id": {
"query": "1bf5f3f968e36336c9164290171211f3"
}
}
}
}
},
"aggs": {
"genders": {
"terms": {
"field": "report.status"
}
}
}
}
请帮我找到一些解决办法。我是弹性搜索的新手。是否有其他聚合方法可以找到此方法?。我非常感谢你的帮助 您的脚本过滤器在大数据上运行缓慢,并且没有使用“索引”的好处。您是否考虑过父/子而不是嵌套?如果您使用父/子-您可以本机使用聚合并使用计算总和。您必须在此处使用嵌套映射。一定要看一看。
然后您必须对嵌套字段进行聚合,如中所示。谢谢您的评论。我已编辑我的查询以使用本机攻击。但它没有返回正确的文档计数。我不确定这是否是用户攻击的方式。你能评论一下吗。谢谢您可以指定
嵌套的聚合用法吗?请看这里: