如何在 Go 中使用 olivere/elastic 更新 ElasticSearch 中的記錄?
使用 ElasticSearch 時,常常需要更新記錄。 Go 的 olivere/elastic 套件提供了一套與 ElasticSearch 互動的全面功能,包括記錄更新。
使用 UPDATE API 進行部分記錄更新
部分記錄更新允許用於修改文件中的特定欄位。 Olivere/elastic 提供了 Update 方法,方便部分更新。以下程式碼片段示範如何使用 UPDATE API 更新單一欄位(「名稱」)。
<code class="go">update, err := client.Update(). Index("test3"). Type("user"). Id("2"). Doc(map[string]interface{}{"name": "Updated Name"}). Do() if err != nil { // Handle error } fmt.Println("updated id: ", update.Id)</code>
替代方法(不起作用)
使用腳本方法部分更新的方法。然而,據報導這種方法是無效的。以下範例說明了嘗試的替代方法。
<code class="go">update := client.Update(). Index("test3"). Type("user"). Id("2"). Script(elastic.NewScript("ctx._source.name = name"). Params(map[string]interface{}{"name": "Updated Name"}). Lang("groovy")) fmt.Println("updated id: ", update.Id)</code>
透過使用 Update 方法和 Doc 指定更新的字段,您可以使用 Go 中的 olivere/elastic 有效更新 ElasticSearch 中的記錄。
以上是如何在 Go 中使用 olivere/elastic 在 ElasticSearch 中執行部分記錄更新?的詳細內容。更多資訊請關注PHP中文網其他相關文章!