ウォッチャーインデックスアクション

Elasticsearch にデータをインデックスするには index アクションを使用します。サポートされている属性については、インデックスアクション属性を参照してください。

インデックスアクションの設定

以下のスニペットは、シンプルな index アクションの定義を示しています:

Js

  1. "actions" : {
  2. "index_payload" : {
  3. "condition": { ... },
  4. "transform": { ... },
  5. "index" : {
  6. "index" : "my-index-000001",
  7. "doc_id": "my-id"
  8. }
  9. }
  10. }
アクションの 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

  1. "actions": {
  2. "index_payload": {
  3. "transform": {
  4. "script": """
  5. def documents = ctx.payload.hits.hits.stream()
  6. .map(hit -> [
  7. "_index": "my-index-000001",
  8. "_id": hit._id,
  9. "severity": "Sev: " + hit._source.severity
  10. ])
  11. .collect(Collectors.toList());
  12. return [ "_doc" : documents];
  13. """
  14. },
  15. "index": {}
  16. }
  17. }
ドキュメントのインデックス
ドキュメントのためのオプションの _id
元のドキュメントから派生した新しい severity フィールド
ドキュメントの配列であるペイロード _doc フィールド
各ドキュメントごとに _index が指定されたため、これは空であるべきです