Use Elasticsearchバージョンが5.4.2Elasticsearchの平均最小時間の計算方法は?
3つの条件を満たすためにElasticsearchクエリを作成したいと思います。
- championId
- によってフィルタは、すべてのゲーム内の各アイテムを購入する平均最小限の時間を計算ゲーム
- あたりの様々なアイテムを購入するための最小限の時間を取得します。
私は1と2でしたが、解決できませんでした3。クエリで1から3を実行することは可能ですか?その場合は、PHPフレームワークの1つであるLaravel 5.4で結果を使用します。
マイデータフォーマットは以下の通りです:
"_index": "timelines",
"_type": "timeline"
"_source": {
"gameId": 152735348,
"participantId": 3,
"championId": 35,
"role": "NONE",
"lane": "JUNGLE",
"win": 1,
"itemId": 1036,
"timestamp": 571200
}
私の現在のElasticsearchクエリは、私が正しくあなたの目的を理解していれば、あなたがpipeline aggregationsでこの問題を解決することができるはずこの
GET timelines/_search?size=0&pretty
{
"query": {
"bool": {
"must": [
{ "match": { "championId": 22 }}
]
}
},
"aggs": {
"games": {
"terms": {
"field": "gameId"
},
"aggs": {
"items": {
"terms": {
"field": "itemId",
"order" : { "min_buying_time" : "asc" }
},
"aggs": {
"min_buying_time": {
"min": {
"field": "timestamp"
}
}
}
}
}
}
}
}
Sönke、あなたの助けに感謝します。私は「パイプライン集約」という言葉は聞いたことがありません。あなたが言ったウェブページをチェックするつもりです。 :) – hikozuma