大多数ElasticSearch文档都讨论了通过REST API使用索引的方法-有什么理由不能简单地从磁盘上移动或删除索引文件夹吗?
您可以将数据移动到磁盘上的某个位置-
如果Elasticsearch正在运行,那么移动或删除索引文件夹绝不是一个好主意,因为Elasticsearch将不知道数据发生了什么,FileNotFoundExceptions
除非您手动进行操作,否则您将在日志中获得各种类型的内容以及红色的索引删除它们。
如果Elasticsearch未运行,则可以将索引文件夹移动到另一个节点(例如,如果您要永久取消使用某个节点并需要删除数据),但是如果删除或将文件夹移动到Elasticsearch无法看到的位置重新启动服务时,Elasticsearch将不满意。这是因为Elasticsearch将所谓的集群状态写入磁盘,并且在该集群状态中记录了索引,因此,如果ES启动并希望找到索引“
foo”,但是您已经删除了“ foo”索引目录,索引将保持红色状态,直到通过REST API将其删除为止。
因此,我建议如果要从磁盘移动或删除单个索引文件夹,请尽可能使用REST API,因为如果删除希望找到的文件夹,可能会使ES进入不满意的状态一个索引。
编辑:我应该提到,从Elasticsearch的角度来看,复制(用于备份)索引文件夹是安全的,因为它不会修改文件夹的内容。有时,人们这样做是为了在快照和还原API之外执行备份。
问题内容: 我的许多日志都以logstash-Year- Week格式编制索引。那就是如果我想删除超过几周的索引,如何在elasticsearch中实现。有没有简单,无缝的方法可以做到这一点? 问题答案: 策展人将是这里的理想之选。您可以在这里找到链接-https: //github.com/elastic/curator 如下所示的命令应该可以正常工作- 您可以将其保留在CRON中,以偶尔删除索
问题内容: 在不使索引离线的情况下备份Lucene索引的最佳实践是什么(热备份)? 问题答案: 您不必停止IndexWriter即可备份索引。 只需使用SnapshotDeletionPolicy,它就可以“保护”给定的提交点(及其包含的所有文件),以免被删除。然后,将该提交点中的文件复制到您的备份中,最后释放该提交。 如果备份需要一段时间才能运行,这很好- 只要您不使用SnapshotDelet
如何在不删除索引映射的情况下从elasticsearch数据库中删除数据? 我是Tire gem,使用删除命令删除我所有的映射并再次运行创建命令。我想避免创建命令一次又一次地运行。 请帮我解决这个问题。
问题内容: 我每天创建索引来存储搜索历史,并且我将这些索引用于应用程序中的建议,这也有助于我根据历史建议。 现在我只需要维持过去的10天历史。那么elasticsearch中是否有任何功能可以让我定期创建和删除索引? 问题答案: 我唯一能想到的就是使用数据数学:https : //www.elastic.co/guide/en/elasticsearch/reference/current/dat
问题内容: 我正在使用带有NEST的C#.NET应用程序来创建索引。 我创建了一个Elasticsearch索引,客户可以查询该索引,称为index_1。然后,我使用应用程序的不同实例构建索引的另一个版本,并将其称为index_1_temp。 我将index_1_temp重命名为index_1然后删除原始index_1的最安全方法是什么? 我知道ES具有别名,但是我不确定如何将其用于此任务 编辑:
我们正在使用AWS弹性搜索日志。日志通过Logstash连续流式传输。定期删除旧索引的最佳方法是什么? 我搜索了一下,推荐的各种方法有: > 使用lambda删除旧索引-https://medium.com/@egonbraun/perioadly-cleaning-ellasticsearch-indexes-using-aws-lambda-f8df0ebf4d9f 使用计划的docker容器