以前の結果セットに基づいて1つのインデックスから個々のドキュメントのカウントを返すことができるようにしたいと思いますそれぞれ別のクエリを実行することなく実行できます。だから、弾性検索を使用して一意の識別子に基づいたフロー/ファンネルの結果を作成
、このようなデータセット(私のESドキュメントの簡易版)与えられた:私がやりたい何
{
"name": "visit",
"sessionId": "session1"
},
{
"name": "visit",
"sessionId": "session2"
},
{
"name": "visit",
"sessionId": "session3"
},
{
"name": "click",
"sessionId": "session1"
},
{
"name": "click",
"sessionId": "session3"
}
はname: visit
を検索し、すべての人々の数を与えることができるようです。その部分は簡単です。しかし、のsessionId
の結果セットを持つname: click
のドキュメントを数えて、name: click
の数と、name: visit
の数のカウントを返すこともできます。
これを行う簡単な方法はありますか?私は集約APIを見てきましたが、それらはすべて自分のニーズに合っていないようです。また、親子関係があるようですが、私が個別にカウントしたい両方のドキュメントが同じタイプであるため、私の状況には当てはまりません。
期待される結果は、このようなものになるだろう:一見
{
"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
}
}
上記のサンプルデータで期待される結果を表示できますか? – Val
@Val確かに、私の元の投稿に追加! – fiiv
一見すると、セッションIDを取得するための最初の集約クエリと、セッションIDを使用してフィルタリングされた2番目の集計クエリの2つのクエリでこれを行う必要があります。これらの2つのクエリを実行するのは大したことではありません。 – Val