ドキュメント作成時に@timestampに現在日時を埋め込む方法

以下のURLを参照しています

インデックス作成APIを実行する際、タイムスタンプ型のフィールドに現在時刻を設定する方法があればご教示頂けないでしょうか?

以下の例でいうと、@timestampフィールドに現在時刻を設定したいです

PUT my-index-000001/_doc/1?timeout=5m
{
  "@timestamp": "2099-11-15T13:12:00",
  "message": "GET /search HTTP/1.1 200 1070000",
  "user": {
    "id": "kimchy"
  }
}

Ingest Pipelineと組み合わせて使うのではどうでしょうか?

Ingest Pipelineの作成

PUT _ingest/pipeline/ingest_timestamp
{
  "processors" : [
    {
      "set": {
        "field": "@timestamp",
        "value": "{{_ingest.timestamp}}"
      }
    }
  ]
}

PUT

Ingest Pipelineを指定してPUTしています。

PUT my-index-000001/_doc/1?pipeline=ingest_timestamp
{
  "message": "GET /search HTTP/1.1 200 1070000",
  "user": {
    "id": "kimchy"
  }
}

得られる結果

GET my-index-000001/_doc/1

{
  "_index" : "my-index-000001",
  "_type" : "_doc",
  "_id" : "1",
  "_version" : 1,
  "_seq_no" : 0,
  "_primary_term" : 1,
  "found" : true,
  "_source" : {
    "@timestamp" : "2021-06-13T13:58:04.669824600Z",
    "message" : "GET /search HTTP/1.1 200 1070000",
    "user" : {
      "id" : "kimchy"
    }
  }
}

@timestampにUTCの時間が入っていることが確認できました。

ご回答ありがとうございます。ご教示頂いた方法で実現できました

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.