我在 elasticsearch 中有一个索引,它被一些 json 文件占用,这些文件与 timestamp 相关。 我想从该索引中删除数据。
curl -XDELETE http://localhost:9200/index_name
上面的代码删除了整个索引。我的要求是在一段时间后(例如 1 周后)删除某些数据。我可以自动执行删除过程吗?
我尝试使用 curator 删除.
但我认为它会删除由 timestamp
创建的索引,而不是索引中的数据。我们可以使用 curator 删除索引中的数据吗?
如果我知道以下任何一个都行得通,我会很高兴:
- Curl 能否在一段时间后自动从索引中删除数据?
- curator 能否在一段时间后自动从索引中删除数据?
- 是否有其他方法(例如 python 脚本)来完成这项工作?
引用资料取自elasticsearch官网.
非常感谢。
最佳答案
您可以使用DELETE BY QUERY
API:https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-delete-by-query.html
基本上它会删除与提供的查询匹配的所有文档:
POST twitter/_delete_by_query
{
"query": {
"match": {
"message": "some message"
}
}
}
但建议的方法是为不同的时间段(例如天)实现索引,并使用 curator
根据 age
定期删除它们:
...
logs_2019.03.11
logs_2019.03.12
logs_2019.03.13
logs_2019.03.14
关于elasticsearch - 如何在一段时间后从elasticsearch中的特定索引中删除数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55159391/