基礎的な質問で恐縮ですが、WatcherのIndex Actionを利用すると、デフォルトでは、集計結果が、一つのドキュメントにまとめられて出力されます。
これを、Watcherで引っかかったドキュメントが、そのまま別々の状態で出力されるように設定をしたいです。
たとえば、
①下記のような3つのデータを用意
*doc1
pc_name : A
feature : B
*doc2
pc_name : A
feature : C
*doc3
pc_name : B
feature : B
②Watcherで、FeatureにBが含まれるときに、Indexを作成するように設定
③doc1とdoc3が、一つのインデックスに、別々のドキュメントして出力
という流れをつくりたいです
初歩的なミスなのかもしれませんが、、下記の通り、Transform句を使用して作成してみたのですが、「no requests added」というエラーが出てしまいました。
{
"trigger": {
"schedule": {
"inte…
以前こちらで質問させていただき、無事にWatcher使用していたのですが、
一度ライセンスが切れ、今月再度ライセンスを更新して再びWatcherを動かしたところ、挙動がおかしくなりました。
{
"script": {
"script": {
"lang": "painless",
"source": "(doc['login_date'].date.getMillis()/1000 - doc['start_date'].date.getMillis()/1000) > 172800"
}
}
}
こちらの指定が効いておらず、この条件に合致しないものがIndexに出力されてしまいます。
しかしなぜかAggregation部分を消すと、上記は効くようです。。
原因の特定がなかなかできず、教えていただけたら幸いです。
"trigger": {
"schedule": {
"interval": "1d"
}
},
"input": {
"search": {
"request": {
"search_type": "query_then_fetch",
"indices": [
"license_used
],
"types": [],
"body": {
"query": {
"bool": {
"must": [
{
"range": {
"login_date": {
"gte": "now-1M"
}
}
},
{
"terms": {
"feature": [
"*****",
"*****"
]
}
},
{
"script": {
"script": {
"lang": "painless",
"source": "(doc['login_date'].date.getMillis()/1000 - doc['start_date'].date.getMillis()/1000) > 172800"
}
}
}
]
}
},
"size": 0,
"aggs": {
"unique_key": {
"composite": {
"size":1000,
"sources": [
{
"pc_name": {
"terms": {
"field": "pc_name"
}
}
},
{
"start_date": {
"terms": {
"field": "start_date"
}
}
},
{
"feature": {
"terms": {
"field": "feature"
}
}
}
]
},
"aggs": {
"latest_login": {
"top_hits": {
"sort": [
{
"login_date": {
"order": "desc"
}
}
],
"size": 1
}
}
}
}
}
}
}
}
},
"condition": {
"compare": {
"ctx.payload.hits.total": {
"gte": 1
}
}
},
"actions": {
"index_payload": {
"transform": {
"script": {
"source": "for (int i = 0; i < ctx.payload.aggregations.unique_key.buckets.length; ++i) {ctx.payload.aggregations.unique_key.buckets[i] = ctx.payload.aggregations.unique_key.buckets[i].latest_login.hits.hits[0]._source } return [ '_doc' : ctx.payload.aggregations.unique_key.buckets]",
"lang": "painless"
}
},
"index": {
"index": "t.watch_highuse0527",
"doc_type": "doc"
}
}
}
}
johtani
(Jun Ohtani)
August 7, 2019, 6:22am
3
ライセンスを更新後ということでしたら、サポートに問い合わせてはどうでしょうか?
また、ライセンスの更新以外は何もしていないということであってますでしょうか?
ありがとうございます。
Watcher自体は変更を加えておりません
検証を続けたところ、どうやらデータ起因っぽそうです。
データ修正して、なんとかできそうです。
ありがとうございました。
system
(system)
Closed
September 4, 2019, 8:33am
5
This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.