ウォッチャースクリプトペイロード変換

現在のペイロードに対してスクリプトを実行し、新しく生成されたものに置き換えるペイロード変換。以下のスニペットは、ウォッチレベルでシンプルなスクリプトペイロード変換を定義する方法を示しています:

  1. #### Js
  2. ``````js
  3. {
  4. "transform" : {
  5. "script" : "return [ 'time' : ctx.trigger.scheduled_time ]"
  6. }
  7. }
  8. `
単一のtimeフィールドを持つ新しいペイロードを作成するシンプルなpainlessスクリプト。
スケジュールされた時間を保持します。

実行されたスクリプトは、Java™ Mapに相当する有効なモデルまたはJSONオブジェクトを返すことができます(この構造が何であるかを知るには、特定のスクリプト言語のドキュメントを参照する必要があります)。返される他の値は、_value変数に割り当てられ、アクセス可能になります。

script属性は文字列値を保持することができ、その場合はインラインスクリプトとして扱われ、デフォルトのElasticsearchスクリプト言語が想定されます(スクリプティングで説明されている通り)。Elasticsearchがサポートする他のスクリプト言語を使用することもできます。そのためには、scriptフィールドをスクリプトとその言語を説明するオブジェクトに設定する必要があります。以下の表は、設定可能な設定をリストしています:


表89. スクリプトペイロード変換設定


| 名前 | 必須 | デフォルト | 説明 |
| :— | :— | :— | :— |
| inline | はい | - | インラインスクリプトを使用する場合、このフィールドは
スクリプト自体を保持します。 |
| id | はい | - | 保存されたスクリプトを参照する場合、この
フィールドはスクリプトのIDを保持します。 |
| lang | いいえ | painless | スクリプト言語 |
| params | いいえ | - | スクリプトによってアクセス可能な追加のパラメータ/変数 |

スクリプトのオブジェクト表記を使用する場合、inlineまたはidフィールドのいずれか一方(かつ一方のみ)を定義する必要があります。

提供されたparamsに加えて、スクリプトは標準ウォッチ実行コンテキストパラメータにもアクセスできます。