ウォッチャーインデックスアクション
Elasticsearch にデータをインデックスするには index
アクションを使用します。サポートされている属性については、インデックスアクション属性を参照してください。
インデックスアクションの設定
以下のスニペットは、シンプルな index
アクションの定義を示しています:
Js
"actions" : {
"index_payload" : {
"condition": { ... },
"transform": { ... },
"index" : {
"index" : "my-index-000001",
"doc_id": "my-id"
}
}
}
アクションの ID | |
アクションの実行を制限するためのオプションの 条件 | |
ペイロードを変換し、インデックスされるべきデータを準備するためのオプションの 変換 | |
データが書き込まれるインデックス、エイリアス、またはデータストリーム | |
ドキュメントのためのオプションの _id |
インデックスアクション属性
名前 | 必須 | デフォルト | 説明 |
---|---|---|---|
index |
はい* | - | インデックス、エイリアス、またはインデックスするデータストリーム。<my-index-{now/d}> のような日付数学式もサポートされています。 |
*動的に _index
値を設定する場合、このパラメータは必須ではありません。詳細は
[マルチドキュメントサポート](664ecea8b31bc643.md#anatomy-actions-index-multi-doc-support “Multi-document support”) を参照してください。 |
| doc_id
| いいえ | - | ドキュメントのオプションの _id
。 |
| op_type
| いいえ | index
| インデックス操作の op_type。
\nindex
または create
のいずれかでなければなりません。index
がデータストリームの場合は create
でなければなりません。 |
| execution_time_field
| いいえ | - | ウォッチ実行の時間を保存/インデックスするフィールド。 |
| timeout
| いいえ | 60s | インデックス API コールの応答を待つためのタイムアウト。この時間内に応答が返されない場合、インデックスアクションはタイムアウトし、失敗します。この設定はデフォルトのタイムアウトを上書きします。 |
| refresh
| いいえ | - | 書き込みリクエストの リフレッシュポリシー のオプション設定 |
マルチドキュメントサポート
他のすべてのアクションと同様に、変換 を使用して現在の実行コンテキストのペイロードを別のもので置き換え、その結果インデックスされるドキュメントを変更できます。
インデックスアクションは、特別な _doc
ペイロードフィールドをサポートしているため、変換と良好に連携します。
インデックスされるドキュメントを解決する際、インデックスアクションは最初にペイロード内の _doc
フィールドを検索します。見つからない場合、ペイロードは単一のドキュメントとしてインデックスされます。
_doc
フィールドが存在する場合、そのフィールドがオブジェクトを保持していると、それが抽出されて単一のドキュメントとしてインデックスされます。フィールドがオブジェクトの配列を保持している場合、各オブジェクトはドキュメントとして扱われ、インデックスアクションはそれらすべてをバルクでインデックスします。
各ドキュメントに対して _index
または _id
値を追加して、インデックスとインデックスされたドキュメントの ID を動的に設定できます。
以下のスニペットは、マルチドキュメント index
アクションの定義を示しています:
Js
"actions": {
"index_payload": {
"transform": {
"script": """
def documents = ctx.payload.hits.hits.stream()
.map(hit -> [
"_index": "my-index-000001",
"_id": hit._id,
"severity": "Sev: " + hit._source.severity
])
.collect(Collectors.toList());
return [ "_doc" : documents];
"""
},
"index": {}
}
}
ドキュメントのインデックス | |
ドキュメントのためのオプションの _id |
|
元のドキュメントから派生した新しい severity フィールド |
|
ドキュメントの配列であるペイロード _doc フィールド |
|
各ドキュメントごとに _index が指定されたため、これは空であるべきです |