」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何在 Go 中使用 olivere/elastic 在 ElasticSearch 中執行部分記錄更新?

如何在 Go 中使用 olivere/elastic 在 ElasticSearch 中執行部分記錄更新?

發佈於2024-11-05
瀏覽:636

How to Perform Partial Record Updates in ElasticSearch Using olivere/elastic in Go?

如何在 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 中的記錄。

版本聲明 本文轉載於:1729739242如有侵犯,請洽[email protected]刪除
最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3