我希望能够根据前一组结果从单个索引返回一组单个文档的计数,并且想知道是否有办法在不为每个文档运行单独的查询的情况下执行此操作。
因此,给定一个这样的数据集(我的ES文档的简化版本):
{
"name": "visit",
"sessionId": "session1"
},
{
"name": "visit",
"sessionId": "session2"
},
{
"name": "visit",
"sessionId": "session3"
},
{
"name": "click",
"sessionId": "session1"
},
{
"name": "click",
"sessionId": "session3"
}
我想要做的是能够搜索name: visit
并计算所有这些。那部分很容易。但我还希望现在能够计算name: click
sessionId
name: visit
个name: click
结果集的文档,并返回其中name: visit
个{
"count": {
// total number of visit events since this is my start point
"visit": 3,
// the amount of click results that have sessionId
// matching my previous search's sessionId values
"click": 2
}
}
的数量与set long 100000;
set longchunksize 100000;
一样。
有一种简单的方法吗?我看过聚合API,但它们似乎都不太适合我的需求。似乎也存在父/子关系,但它并不适用于我的情况,因为我想要单独获得的两个文件属于同一类型。
预期结果将是这样的:
AWSLambdaClient.invoke()
答案 0 :(得分:1)
乍一看,您需要在两个查询中执行此操作:
我认为运行这两个查询并不是一件大事,但这取决于您拥有多少数据以及您想要一次检索多少个sessionIds。