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

Elasticsearch:如何在不删除整个索引的情况下删除映射类型?

齐宗清
2023-03-14

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

我有一个具有两个映射的索引。我希望能够删除一种映射类型(以及该类型的所有文档)而不删除另一种映射类型。

谢谢

共有3个答案

孔鸿远
2023-03-14

对于ES的最新版本(2.0以上),无法再删除类型的映射。相反,您应该删除索引并使用新映射重新创建它。有关更多信息,请参见此处的官方文件。对于elasticsearch的旧版本(低于2.0),允许删除映射(类型)及其数据。其余endpoint为

[DELETE] /{index}/{type}

[DELETE] /{index}/{type}/_mapping

[DELETE] /{index}/_mapping/{type}
储志业
2023-03-14

为了回答您的问题,我相信当映射在集群中发布时,它是为了可靠性和性能优化而推出的。

很难更改ES索引中的任何内容的原因是因为底层存储是一个倒排索引,并且您放入的任何数据都已经使用这些映射规则进行了索引。

Elasticsearch降低了进入搜索的门槛,但有一些非常复杂的东西隐藏在引擎盖下。

赵奕
2023-03-14

有关删除类型/映射的潜在问题示例以及禁用的说明,请参见elasticsearch问题:8877。问题描述摘录:

目前,用户可以完全删除一个类型,这将删除该类型、该类型的所有文档,并删除相关字段。不幸的是,如果该类型的任何文档已经被索引,那么这些字段就是索引的一部分。添加具有相同名称但不同数据类型的字段将导致以后发生冲突。

目前,重新索引是唯一的选择,但要缓解客户端重新索引的问题,似乎将来可能会支持重新索引api:有关详细信息,请参阅问题:16207和问题:#15201。

 类似资料:
  • 如何在不删除索引映射的情况下从elasticsearch数据库中删除数据? 我是Tire gem,使用删除命令删除我所有的映射并再次运行创建命令。我想避免创建命令一次又一次地运行。 请帮我解决这个问题。

  • 问题内容: 我每天创建索引来存储搜索历史,并且我将这些索引用于应用程序中的建议,这也有助于我根据历史建议。 现在我只需要维持过去的10天历史。那么elasticsearch中是否有任何功能可以让我定期创建和删除索引? 问题答案: 我唯一能想到的就是使用数据数学:https : //www.elastic.co/guide/en/elasticsearch/reference/current/dat

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

  • (示例代码张贴在末尾。) 我正在使用EF Core 5数据库优先(即逆向工程POCO)。当使用,后续的抱怨孤儿。是的,很多问 对于代码优先方案,可以将其添加到配置中(从这里): 但首先对DB来说是不现实的。如果数据库为FK关系(此处的文档引用)设置了级联删除,则生成的模型[更正]不包括 并且删除(使用)确实有效,包括。但是... 我在这里面临的问题是,这个“解决方案”要求我们的所有FK关系都在数据

  • 我只是想了解SpringJPA/Hibernate的某些部分是如何工作的。正如标题所说,只有在从集合中添加和删除子实体之间将实体刷新到数据库时,删除孤儿似乎才起作用,我想知道为什么。 我有一个父类,它与一个子类有一个@OneToMore关联 我正在测试让孩子在从父级删除时删除,就像这样(使用@autowiledJPARepository 如果在将子项添加到父项和删除子项之间未刷新实体管理器,则两个

  • 我们正在使用AWS弹性搜索日志。日志通过Logstash连续流式传输。定期删除旧索引的最佳方法是什么? 我搜索了一下,推荐的各种方法有: > 使用lambda删除旧索引-https://medium.com/@egonbraun/perioadly-cleaning-ellasticsearch-indexes-using-aws-lambda-f8df0ebf4d9f 使用计划的docker容器