2012-12-11 109 views
3

我想配置我的elasticsearch 0.19.11删除索引每60秒。我elasticsearch配置有以下3行:Elasticsearch:自动索引删除/到期

node.name: "Saurajeet" 
index.ttl.disable_purge: false 
index.ttl.interval: 60s 
indices.ttl.interval: 60s 

而且它不工作 我有索引2个默认文档。并会期待它去后60

$ curl -XGET http://localhost:9200/twitter/_settings?pretty=true 
{ 
    "twitter" : { 
    "settings" : { 
     "index.version.created" : "191199", 
     "index.number_of_replicas" : "1", 
     "index.number_of_shards" : "5" 
    } 
} 

另外,如果我尝试做到这一点亘古不变的有

$ curl -XPUT http://localhost:9200/twitter/_settings -d ' 
> { "twitter": { 
>  "settings" : { 
>  "index.ttl.interval": "60s" 
> } 
> } 
> } 
> ' 
{"ok":true}~/bin/elasticsearc 
$ curl -XGET http://localhost:9200/twitter/_settings?pretty=true 
{ 
    "twitter" : { 
    "settings" : { 
     "index.version.created" : "191199", 
     "index.number_of_replicas" : "1", 
     "index.number_of_shards" : "5" 
    } 
    } 
} 

我有索引2个文件和其仍呈现1小时

之后的任何效果如下
$ curl -XPUT 'http://localhost:9200/twitter/tweet/1' -d ' 
{ 
    "user": "kimchy", 
    "postDate": "2009-11-15T13:12:00", 
    "message": "Trying out Elastic Search, so far so good?" 
}' 
$ curl -XPUT 'http://localhost:9200/twitter/tweet/2' -d ' 
{ 
    "user": "kimchy", 
    "postDate": "2009-11-15T13:12:00", 
    "message": "Trying out Elastic Search, so far so good?" 
}' 

我做了什么错

P.S.我想用logstash部署这个配置。因此可以建议任何其他选择。 因为缩放的原因,我不希望这个autopurge是一个脚本。

回答

1

终于想通了自己。将elasticsearch版本升级到1.2.0。您可以从Mapping API中输入TTL。 - >Put Mapping - >TTL

上的索引启用上型水平TTL

$ curl -XPOST http://localhost:9200/abc/a/_mapping -d ' 
{ 
    "a": { 
     "_ttl": { 
     "enabled": true, 
     "default": "10000ms" 
     } 
    } 
}' 

$ curl -XPOST http://localhost:9200/abc/a/a1 -d '{"test": "true"}' 
$ $ curl -XGET http://localhost:9200/abc/a/a1?pretty 
{ 
    "_index" : "abc", 
    "_type" : "a", 
    "_id" : "a1", 
    "_version" : 1, 
    "found" : true, 
    "_source":{"test": "true"} 
} 
$ # After 10s 
$ curl -XGET http://localhost:9200/abc/a/a1?pretty 
{ 
    "_index" : "abc", 
    "_type" : "a", 
    "_id" : "a1", 
    "found" : false 
} 

注:

  • 映射适用于创建映射之后创建的文档。
  • 此外,还为类型a创建了映射。因此,如果您发布的类型为b并且 预计会在TTL上过期,那么这种情况不会发生。

如果你需要到期索引,你也可以在create index期间创建索引级映射,以便从您的应用程序逻辑预先创建索引。