【问题标题】:Delete Data from Elasticsearch Maxed out index从 Elasticsearch 中删除数据 Maxed out index
【发布时间】:2020-07-29 02:09:34
【问题描述】:

我有一个具有最大文档数的 Elasticsearch 索引。我想从此索引中删除一些数据。我试过运行 delete_by_query 但它失败了。对此有何建议,我可以保留索引及其数据并从同一索引中删除一些旧数据?

这是我正在运行的请求。

curl -X GET "1localhost:9200/produdtion-index/_search?pretty" -H 'Content-Type: application/json' -d'
{
  "query": {
                    "bool": {
                        "must": [
                            { "range": { "submitDate": { "lte": "20200421" } } }   
                        ]
                    }
                }
}
' 

【问题讨论】:

  • 你得到什么错误?诸如“达到每个分片的最大文档数”之类的东西?
  • 如果您缺少存储空间,则很难解决这些问题。 在索引数据之前,您应该根据需要规划存储空间。现在,如果你想继续前进,你应该增加你的存储空间
  • 删除文档不会立即回收空间,只是在底层段文件中标记了已删除的文档,因此短期内不会解决您的问题。你可以尝试做的是forcemerge the index,但如果你缺少空间,它可能无法正常工作,因为该过程将需要额外的空间来重写没有删除文档的段。
  • 这只是表示 forcemerge 调用成功运行,仅此而已。你看到一些回收的空间吗?
  • 正如我所说,调用 forcemerge 是创可贴的,您需要在索引数据之前提供足够的磁盘空间。现在你最好的选择是增加磁盘空间(存储很便宜)

标签: elasticsearch


【解决方案1】:

尝试索引生命周期管理https://www.elastic.co/guide/en/elasticsearch/reference/current/index-lifecycle-management.html 您可以根据文档的数量拆分索引,然后删除它们

【讨论】:

  • 谢谢你,伙计。不是我的问题的解决方案,但它帮助我找到了重新索引 api。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-05-04
  • 2013-10-14
  • 2020-02-06
  • 1970-01-01
  • 2019-03-30
  • 2020-11-11
  • 2014-04-15
相关资源
最近更新 更多