【问题标题】:How to iterate through every object in an ElasticSearch index?如何遍历 ElasticSearch 索引中的每个对象?
【发布时间】:2017-10-06 05:14:04
【问题描述】:

这应该很容易。

我已经在 ElasticSearch 中插入了一些记录,并一直在搜索他们的文档,但我似乎无法找到一种方法来简单地获取索引并在 Node.js 中遍历它

我对 Elastic 没有太多经验,所以很沮丧。

该列表中的某些项目需要在 10 分钟的基础上或多或少地进行修剪,否则数据库只会不断增长。我想要一个单独的任务来做到这一点。

【问题讨论】:

  • 如果您知道需要修剪哪些项目,则无需遍历整个索引,只需使用delete by query API
  • @Val 如何按日期比较?任何日期早于new Date() 的东西都应该被核爆。似乎这只是 API 示例中的直接匹配 - 还有更多内容吗?

标签: node.js search elasticsearch iteration pruning


【解决方案1】:

您可以通过在您的delete by query 调用中使用range query 来实现您想要的:

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

【讨论】:

  • 很好的答案。愚蠢的问题:如何将数字 UTC 时间戳转换为“YYYY-MM-DDT00:00:00.000Z”格式?
  • 您也可以使用数字时间戳代替格式化日期。
猜你喜欢
  • 2016-12-28
  • 1970-01-01
  • 2020-05-23
  • 1970-01-01
  • 2017-12-28
  • 1970-01-01
  • 2013-05-12
  • 1970-01-01
  • 2021-01-18
相关资源
最近更新 更多