2015-12-09 27 views

答えて

5

これはdelete by queryプラグインで行うことができます。

あなたはインデックス内のいくつかのtimestampまたはcreation dateフィールドを持っていると仮定すると、クエリは、10歳以上のレコードを削除します。この

DELETE /your_index/your_type/_query 
{ 
    "query": { 
    "range": { 
     "timestamp": { 
     "lte": "now-10y" 
     } 
    } 
    } 
} 

このようになります。

私は、これは古いインデックス名として日々のインデックスと使用エイリアスに

+0

スクリプトの形でこれを行う方法はありませんので、手動でクエリを実行する必要はありません – sri

+0

この削除クエリは、インデックスからレコードを完全に消去し、新しいレコードを挿入するスペースを許可しますか – sri

+0

あなたが削除を実行した後に削除されていない**レコードは**削除されている**マーク**が削除され、セグメントマージの間に実際に削除されると、削除または更新するには、[force merge](https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-forcemerge.html)を使用してインデックスを最適化してください – ChintanShah25

4

分割データに役立ちます願っています。毎日各インデックスを削除します。 logstashと同じように:

毎日のインデックス:logstash-20151011,logstash-20151012,logstash-20151013

完全エイリアス:logstash

次に、最終インデックスを毎日削除します。

+1

複数のインデックスを使用する方法があります。古いインデックスを削除するには、キュレーターを使用します:https://www.elastic.co/guide/en/elasticsearch/client/curator/current/index.html – slim

関連する問題