首页  >  文章  >  后端开发  >  如何在 Go 中使用 Olivere/Elastic 在 ElasticSearch 中执行部分更新?

如何在 Go 中使用 Olivere/Elastic 在 ElasticSearch 中执行部分更新?

Linda Hamilton
Linda Hamilton原创
2024-10-24 18:37:04545浏览

How to Perform Partial Updates in ElasticSearch Using Olivere/Elastic in Go?

在 Go 中使用 Olivere/Elastic 更新 ElasticSearch 中的记录

使用 Olivere/Elastic 将记录插入 ElasticSearch 非常简单。但是,当涉及部分更新时,可能会缺少 UPDATE API 的文档。以下是如何在 Go 中将这个 API 与 Olivere/Elastic 结合使用。

解决方案:

要执行部分更新,您可以使用以下代码:

<code class="go">update, err := client.Update().Index("test3").Type("user").Id("2").Doc(map[string]interface{}{"location": message}).Do()
fmt.Println("updated id: ", update.Id)</code>

此代码使用索引 test3 中 ID 为 2 的文档的消息变量的值更新字段位置。

替代方法:

另一种已被报告为不成功的方法是:

<code class="go">update := client.Update().Index("test3").Type("user").Id("2").Script(elastic.NewScript("ctx._source.location = loc").Params(map[string]interface{}{"loc": message}).Lang("groovy"))
fmt.Println("updated id: ", update.Id)</code>

如果您遇到此方法的任何问题,第一个示例应该为在 Go 中使用 Olivere/Elastic 进行部分更新提供可靠的解决方案弹性搜索。

以上是如何在 Go 中使用 Olivere/Elastic 在 ElasticSearch 中执行部分更新?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn