当前位置: 首页 > 知识库问答 >
问题:

删除Elasticsearch索引而不删除其映射

阴波峻
2023-03-14

如何在不删除索引映射的情况下从elasticsearch数据库中删除数据?

我是Tire gem,使用删除命令删除我所有的映射并再次运行创建命令。我想避免创建命令一次又一次地运行。

请帮我解决这个问题。

共有3个答案

齐弘业
2023-03-14

由于ElasticSearch删除其文档的方式(通过使用要删除的位集标记文档),因此不值得遍历X个数量的文档并将其标记为删除。我相信,当刷新索引时,它会通过删除所有标记了删除位集的文档来释放内存,这是一项昂贵的操作,并且会减慢索引所在的碎片的速度。

希望这有帮助。

富钧
2023-03-14

您可以使用索引模板,该模板将应用于名称与模式匹配的索引。

这样,您就可以使用delete index api(比删除其中的所有文档要好得多)简单地删除一个索引,并且当您重新创建同一个索引时,匹配的索引模板将应用于该索引,这样您就不需要重新创建其映射、设置和加热器。。。

发生的情况是,映射将在引用您删除的索引时被删除,但由于它们也存储在索引模板中,因此在稍后重新创建相同索引时,无需再次提交它们。

葛泳
2023-03-14

在找到它http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/docs-delete-by-query.html

DELETE <index>/_query
{
  "query" : {
    "match_all": {}
  }
}

您也可以通过将特定类型更改为“删除”来删除它

这将删除数据并维护映射、设置等。

 类似资料:
  • 是否可以从索引中删除单个映射类型而不删除整个索引?https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-delete-mapping.html说这已经不可能了,但我觉得这很难相信。有人能解释为什么删除了该功能吗?似乎是基本的东西。 我有一个具有两个映射的索引。我希望能够删除一种映射类型(以及该类型的所有文档)

  • 问题内容: 我的许多日志都以logstash-Year- Week格式编制索引。那就是如果我想删除超过几周的索引,如何在elasticsearch中实现。有没有简单,无缝的方法可以做到这一点? 问题答案: 策展人将是这里的理想之选。您可以在这里找到链接-https: //github.com/elastic/curator 如下所示的命令应该可以正常工作- 您可以将其保留在CRON中,以偶尔删除索

  • 问题内容: 我开始elasticsearch,并得到错误: 我不确定是什么原因导致了这种情况的发生。我确实做了一个, 但没有记下最新版本。我目前正在使用Elasticsearch 5.5。 我想清除所有用于Elasticsearch的映射/索引。我不需要这些数据进行测试。大多数文档说要使用 但是,localhost:9200无法访问(以前是无法访问的),大概是因为无法正确启动elasticsear

  • 问题内容: 我每天创建索引来存储搜索历史,并且我将这些索引用于应用程序中的建议,这也有助于我根据历史建议。 现在我只需要维持过去的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容器