我找到了使用 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 上可用,那么通过查询更新是合适的。
您还可以使用管道脚本查看重新索引。但同样,课程规则的马匹也适用于此。
- 1 回答
- 0 关注
- 207 浏览
添加回答
举报
0/150
提交
取消