为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
回首忆惘然 2022-05-23 18:00:30
我找到了使用 golang 在弹性搜索中更新数据的解决方案。数据大约是 1,000,000+++ 个文档,并且必须特定于文档的 id。我可以使用批量操作在 mongoDB 中进行更新,但在 elasticsearch 中找不到它是否有类似的操作?或任何人都想用特定的 ID 更新弹性搜索中的大量数据。提前致谢。
查看完整描述

1 回答

?
至尊宝的传说

TA贡献1789条经验 获得超10个赞

通常,您可以使用批量 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 上可用,那么通过查询更新是合适的。


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


查看完整回答
反对 回复 2022-05-23
  • 1 回答
  • 0 关注
  • 207 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信