2017-05-08 79 views
0

這應該很容易。如何遍歷ElasticSearch索引中的每個對象?

我插入了一些記錄到ElasticSearch並已精練的文檔,但我似乎無法找到一種方法來簡單地採取指數和遍歷它的Node.js

我不對Elastic有很多經驗,所以一直很沮喪。

該列表中的某些項目需要在10分鐘內或多或少地進行修剪,否則數據庫只會增長並增長。我想要一個單獨的任務來做到這一點。

+0

如果你知道哪些項目需要修剪,你並不需要通過整個索引進行迭代,你可以簡單地使用[按查詢API刪除](https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-delete-by-query.html) – Val

+0

@Val如何通過日期比較來做到這一點?任何日期早於'new Date()'的日期都應該被刪除。看起來這只是API示例中的一個直接匹配 - 有更多嗎? –

回答

1

您可以在您的通話delete by query使用range query實現你想要的:

POST your_index/_delete_by_query 
{ 
    "query": { 
    "range" : { 
     "date_field" : { 
      "lt" : "2017-05-08T00:00:00.000Z" 
     } 
    } 
    } 
} 
+0

很棒的回答。愚蠢的問題:如何將數字UTC時間戳變成「YYYY-MM-DDT00:00:00.000Z」格式? –

+0

您也可以使用數字時間戳而不是格式化日期。 – Val