例如,我在那里有六个文件:
我想获得具有相同task_id的文档计数。
期望结果必须是(关键是“task_id”):
[
{"key": 1, "doc_count": 2},
{"key": 2, "doc_count":2},
{"key": 3, "doc_count":1}
]
注意:第一个文档和第二个文档的所有值都相同,所以它只计算一次。
那么如何在elasticsearch中编写查询?我可以在SQL中轻松编写它,但我在Elasticsearch中感到困惑。
我的mysql查询:
select tmp.task_id, count(*) from (select distinct task_id,frame,job_id from mytable) as tmp group by tmp.task_id
答案 0 :(得分:1)
您想在task_id
+ frame
+ job_id
字段{使用script
)上使用terms
aggregation,您将获得{ {1}}你期待。
doc_count
请注意,要运行此功能,您需要enable dynamic scripting。