2017-06-13 17 views
0
{ 
"_index": "user:1494813192000", 
"_type": "fruits", 
"_id": "pbyac5r88-yghe-v1ez-cpgb-sqdjipr54alzgj/tp4oqalbd-bo2v-ikj1-atfq-wezcoeeuf6wiqpt/apple", 
"_score": 1, 
"_routing": "pbyac5r88-yghe-v1ez-cpgb-sqdjipr54alzgj", 
"_source": { 
"numCal": 442, 
"eventTime": 1497315192000, 
"fruitName": "apple" 
} 

これは私のelasticsearchのインデックスの様子です。 eventTimeは、UTCに基づく現在の時間(ミリ秒単位)です。私はそのフィールドを使用して、キュレーターを使ってインデックスを削除したいと考えています。タイプ日付ではないフィールドに基づいて30日以上経過したインデックスを削除するキュレーター

これは私のACTION_FILE.YMLが

actions: 
    1: 
    action: delete_indices 
    description: >- 
     Delete indices older than 45 days (based on index name), for logstash- 
     prefixed indices. Ignore the error if the filter does not result in an 
     actionable list of indices (ignore_empty_list) and exit cleanly. 
    options: 
     ignore_empty_list: True 
     timeout_override: 
     continue_if_exception: False 
     disable_action: False 
    filters: 
    - filtertype: age 
     source: field_stats 
     field: 'eventTime' 
     direction: older 
     unit: days 
     unit_count: 30 
     exclude: 

データ形式になっていないフィールドに基づいんキュレーター・サポート・削除どのように見えるかですか?

答えて

0

私はもともとこの質問に回答しましたhereですが、ここでもそれを含めています。

日時比較は、エポック時間に基づいてキュレーターで機能します。 Elasticsearchは日付エントリをエポック値として内部的に格納するため、比較のためにfield_statsを使用する場合は、通常、日付スタンプとして格納されているフィールドを使用する必要があります。

ただし、Elasticsearchでlongとして適切にマップされ、エポックまたはエポック+ミリ秒(ただし10進ではない)のいずれかを格納する場合は、field_statsで使用するとうまく動作するはずです。

参考のため、この原則を示すコードはhereです。

関連する問題