登录
首页 >  Golang >  Go问答

如何使用mongoDB中的bulkupdate更新elasticsearch中的数据?

来源:stackoverflow

时间:2024-04-25 22:24:37 433浏览 收藏

编程并不是一个机械性的工作,而是需要有思考,有创新的工作,语法是固定的,但解决问题的思路则是依靠人的思维,这就需要我们坚持学习和更新自己的知识。今天golang学习网就整理分享《如何使用mongoDB中的bulkupdate更新elasticsearch中的数据?》,文章讲解的知识点主要包括,如果你对Golang方面的知识点感兴趣,就不要错过golang学习网,在这可以对大家的知识积累有所帮助,助力开发能力的提升。

问题内容

我找到了使用 golang 更新 elasticsearch 中数据的解决方案。数据约为 1,000,000+++ 文档,并且必须特定于文档 ID。我可以使用批量操作在 mongoDB 中更新,但我在 elasticsearch 中找不到它,它有类似的操作吗?或者任何人都有想法用特定的 id 更新 elasticsearch 中的大量数据。提前致谢。


解决方案


一般来说,您可以使用批量 api 来进行此类批量更新。您可以使用相同的 id 再次索引数据或仅运行更新。如果您要将更新作为一次性更新,则可以使用 curl 从命令行推送更新。

POST _bulk
{ "index" : { "_index" : "test", "_id" : "1" } }
{ "field1" : "value1" }
{ "update" : {"_id" : "1", "_index" : "test"} }
{ "doc" : {"field2" : "value2"} }

如果您要设置自定义字段,另一个选项是使用 update_by_query。通过查询更新,您还可以将其与管道混合以更新现有数据。

无论您是尝试使用来自不同索引的信息运行更新(在这种情况下,您可以使用丰富的处理器,该处理器在 7.5 及以上版本中可用),还是只是想添加新字段并更新它,这完全取决于您的情况使用一些已经使用文档上可用属性的规则。

因此,针对不同类型的场景,可以使用不同的选项。当数据源是外部时,批量 api 更合适。但如果 elasticsearch 上已有数据,则可以通过查询进行更新。

您还可以查看使用管道脚本重新索引。但同样,马匹规则也适用于此。

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>