从 Elasticsearch 文档中删除字段

探索从 Elasticsearch 文档中删除字段的方法。

刚接触 Elasticsearch 吗?欢迎参加我们的 Elasticsearch 入门网络研讨会。您也可以开始免费云服务试用,或立即在您的计算机上试用 Elastic。

在 Elasticsearch 中,从文档中删除字段是一项常见需求。当您想从索引中删除不必要或过时的信息时,这将非常有用。在本文中,我们将讨论从 Elasticsearch 文档中删除字段的不同方法以及示例和分步说明。

方法 1:使用更新 API

更新 API 允许您通过提供修改文档源的脚本来更新文档。您可以使用此 API 将字段设置为空,从而从文档中删除该字段。以下是如何实现这一目标的分步指南:

1.确定要更新的文档的索引、文档类型(如果使用 Elasticsearch 6.x 或更早版本)和文档 ID。

2.使用更新 API 并编写脚本,将字段设置为空,或者更好的做法是从源文档中删除该字段。下面的示例演示了如何从 "my_index "索引中 ID 为 "1 "的文档中删除 "field_to_delete "字段:

3.执行请求。如果成功,Elasticsearch 将返回一个响应,表明文档已被更新。

注意:此方法只能从指定文档中删除字段。该字段仍将存在于映射和索引中的其他文档中。

方法 2:使用修改后的源重新编制索引

如果要从索引中的所有文档中删除某个字段,可以使用 Reindex API 使用修改后的源创建新索引。具体方法如下

1.创建一个新索引,其设置和映射与原始索引相同。您可以使用获取索引 API 来检索原始索引的设置和映射。

2.使用重新索引 API 将原始索引中的文档复制到新索引中,同时从源中删除字段。下面的示例演示了如何从 "my_index "索引中的所有文档中删除 "field_to_delete "字段:


3.验证新索引是否包含已删除字段的正确文件。

4.如果一切正常,就可以删除原始索引,如有必要,还可以为新索引添加一个别名,其名称与原始索引名称相同。

方法 3:更新映射和重新索引

如果要从映射和索引中的所有文档中删除某个字段,可以更新映射,然后重新索引文档。具体方法如下

1.创建一个新索引,设置与原始索引相同。

2.使用获取映射 API 检索原始索引的映射。

3.修改映射,删除要删除的字段。

4.使用 Put Mapping API 将修改后的映射应用到新索引。

5.如方法 2 所述,使用重新索引 API 将原始索引中的文档复制到新索引中。

6.验证新索引是否包含已删除字段的正确文件,以及映射中是否不存在该字段。

7.如果一切正常,就可以删除原始索引,必要时还可以为新索引添加一个别名,其名称与原始索引名称相同。

结论

在本文中,我们讨论了从 Elasticsearch 文档中删除字段的三种方法:使用 Update API、使用修改后的源重新索引,以及更新映射并重新索引。每种方法都有自己的用例和权衡,因此请选择最适合您要求的方法。在将更改应用到生产环境之前,请务必记住测试更改并验证结果。

相关内容

准备好打造最先进的搜索体验了吗?

足够先进的搜索不是一个人的努力就能实现的。Elasticsearch 由数据科学家、ML 操作员、工程师以及更多和您一样对搜索充满热情的人提供支持。让我们联系起来,共同打造神奇的搜索体验,让您获得想要的结果。

亲自试用