0
グループ化された文書の少なくとも1つに特定の内容のフィールドが必要であるという条件で集計結果をフィルタリングする必要があります。 私のデータは、異なるプロセスに発生したイベントの痕跡の一種であり、独自のプロセスには多くのトレースがあります。私のデータのElasticsearch:グループ化された文書の条件でフィルタリングする
例:たとえば
proc_id event timestamp
1 ON 1000
1 EV1 1001
2 ON 1002
1 OFF 1003
3 ON 1004
2 EV2 1005
3 EV1 1006
3 EV_END 1007
2 EV_END 1008
、私はPROC_ID、少なくとも一つのEV_ENDイベントを持っているだけでPROC_IDによってグループにする必要があります。 proc_idのすべての痕跡で、後で(時間やイベントの数など)処理する必要があるため、EV_ENDトレースを取得するだけの解決策ではありません。
バージョン2.xからbucket_selectorsとスクリプトがあることがわかりましたが、わかりません。
私が何をしたいのかと疑似クエリ:
curl -XPOST 'localhost:9200/proc/_search?pretty' -d '
{
"query": { "match_all": {} },
"aggs": {
"group_by_proc_id": {
"terms": {
"field": "proc_id",
**ONLY if proc has at least one trace with event == 'EV_END'**
}
}
}
}'
投稿したサンプルデータに必要な出力を提供できますか? – ChintanShah25
これは正確な出力ではありませんが、 "疑似クエリ"はアイデアを示しています – Hamlett
解決策は役に立ちましたか? – ChintanShah25