首頁  >  文章  >  後端開發  >  如何在 Go 中使用 olivere/elastic 在 ElasticSearch 中執行部分記錄更新?

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

Linda Hamilton
Linda Hamilton原創
2024-10-24 12:03:02620瀏覽

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 更新單一欄位(「名稱」)。

<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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn