您的位置:首页 > 其它

给索引添加ttl属性自动过期删除

2016-03-17 16:55 429 查看
首先需要将索引的ttl属性打开,默认是关闭的

PUT /music/song/_mapping

{

"song" : {

"_ttl" : { "enabled" : true }

}

}

也可以设置默认ttl时间:

PUT /music/song/_mapping

{

"song" : {

"_ttl" : { "enabled" : true,"default":"1d" }

}

}

ttl属性一旦被打开,就不能再关闭了。

接下来可以插入一条数据:

PUT /music/song/2?ttl=10000

{

"name" : "Nevermind"

}

也可以这么写:

PUT /music/song/2

{

“_ttl”:10000,

"name" : "Nevermind"

}

时间表示法和es里的Time Unit描述一致,默认是ms,所以这里添加的这条数据10秒后将被自动删除

可以通过put mapping API来动态调整ttl的default值,不会影响调整之前的数据,调整后再插入的数据按新的ttl执行。

ttl删除跟document的version有关系,如果在一个ttl周期内文档被更新了,那么将不会被删除。

参考:
https://www.elastic.co/guide/en/elasticsearch/reference/1.7/mapping-ttl-field.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: