在 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中文网其他相关文章!