在1.X Elasticsearch中,我们按以下方式组织了_ttl: 在我们的映射中:
{
"_ttl" : {
"enabled" : true,
"default" : "30d"
},
"_timestamp" : {
"enabled" : true,
"path" : "@ts",
"format" : "dateOptionalTime"
}
}
这意味着给定文档应在@ts
字段中描述的30天后过期。目前在Elasticsearch 2.0中,_timestamp
字段不能包含'路径'字段并且已弃用,因此我无法使用该方法告诉Elasticsearch何时使给定文档到期。
所以我仍然可以在索引映射中使用_ttl
30d,但是文档将在索引后30天到期,如果我想在@ts
字段的30天后过期,那么我需要计算索引的相对时间并将其添加为HTTP请求的get参数:
PUT my_index/my_type/1?ttl=10m
{
"text": "Will expire in 10 minutes"
}
所以我的问题是我如何用PHP Elasticsearch驱动程序来表达它?
$params = [
'index' => 'my_index',
'type' => 'my_type',
'id' => 'my_id',
'body' => ['testField' => 'abc']
];
$response = $client->index($params);