如何在 Go 中使用 olivere/elastic 更新 ElasticSearch 中的記錄?
使用 ElasticSearch 時,經常需要更新記錄。 Go 的 olivere/elastic 套件提供了一套與 ElasticSearch 互動的全面功能,包括記錄更新。
使用 UPDATE API 進行部分記錄更新
部分記錄更新允許用於修改文件中的特定欄位。 Olivere/elastic 提供了 Update 方法,方便部分更新。以下程式碼片段示範如何使用 UPDATE API 更新單一欄位(「名稱」)。
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)
替代方法(不起作用)
部分更新的替代方法使用腳本方法。然而,據報導這種方法是無效的。以下範例說明了嘗試的替代方法。
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)
透過使用 Update 方法和 Doc 指定更新字段,可以使用 Go 中的 olivere/elastic 有效更新 ElasticSearch 中的記錄。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3