我最近由于需要需要像一个索引里写入一个文档,而且里面的时间标签 @timestamp 需要用到当前的时间。在文档里,我们没有项 now 这样的东西可以使用来表示当前的时间。那么我们该怎么办呢?
首先我们创建一个这样的 pipeline:
PUT _ingest/pipeline/add-timestamp
{
"processors": [
{
"set": {
"field": "@timestamp",
"value": "{{_ingest.timestamp}}"
}
}
]
}
在这里,我们使用 add-timestamp 这个 pipeline 来添加一个叫做 @timestamp 的字段。它的时间由 _ingest.timestamp 来指定。
我们接下来使用如下的命令来向一个索引添加一个文档:
PUT /test/_doc/1?pipeline=add-timestamp
{
"content": "good"
}
在这里,我们使用 add-timestamp 来添加一个 @timestamp 的字段。运行上面的命令后,我们使用如下的命令来查询:
{
"_index" : "test",
"_type" : "_doc",
"_id" : "1",
"_version" : 1,
"_seq_no" : 0,
"_primary_term" : 1,
"found" : true,
"_source" : {
"@timestamp" : "2020-08-08T14:33:23.372112Z",
"content" : "good"
}
}
从上面我们可以看出来在文档中,它添加了一个新的字段 @timestamp,而且它的时间是我们当前的电脑的时间。