我有一些数据elasticsearch
,我发现很难创建我需要获取一些数据的查询。
我的数据是这样组织的(如果我要以csv
格式显示它):
campaignid, sellerid, action
A, mike, sell
A, mike, buy
A, mike, buy
A, joe, sell
A, joe, sell
A, joe, sell
B, mike, sell
B, mike, sell
B, mike, sell
B, alice, buy
B, alice, buy
我想得到这个结果集:
campaignid, sellerid, sales, buys
A, mike, 1, 2
A, joe, 3, 0
B, mike, 3, 0
B, alice, 0, 2
在SQL
我熟悉的 中,我会这样写:
SELECT campaignid, sellerid, SUM(CASE WHEN action='sell' THEN 1 ELSE 0 END) as sales, SUM(CASE WHEN action='buy' THEN 1 ELSE 0 END) as buys
GROUP BY campaignid, sellerid
我正在努力在弹性搜索中获得等价物。我已经设法使用此页面的帮助按组计算数据。
但是我不知道如何获取我想要的数据(事情的总和)。这就是我想出的:
GET _search
{
"size": 0,
"aggs": {
"group_by_campaignid": {
"terms": {
"field": "campaignid"
},
"aggs": {
"group_by_sellerid": {
"terms": {
"field": "sellerid"
}
}
}
}
}
}
任何人都可以帮助编写我想要的查询吗?谢谢。