Wie aktualisiere ich einen Datensatz in ElasticSearch mit olivere/elastic in Go?
Bei der Arbeit mit ElasticSearch ist die Aktualisierung von Datensätzen häufig erforderlich. Das olivere/elastic-Paket für Go bietet einen umfassenden Satz an Funktionen für die Interaktion mit ElasticSearch, einschließlich Datensatzaktualisierungen.
Teilweise Datensatzaktualisierung mithilfe der UPDATE-API
Teilweise Datensatzaktualisierungen ermöglichen für Änderungen an bestimmten Feldern innerhalb eines Dokuments. Olivere/elastic bietet die Update-Methode, um Teilaktualisierungen zu ermöglichen. Der folgende Codeausschnitt zeigt, wie ein einzelnes Feld („Name“) mithilfe der UPDATE-API aktualisiert wird.
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)
Alternativer Ansatz (funktioniert nicht)
Ein alternativer Ansatz für Teilaktualisierungen verwendet die Skriptmethode. Es wurde jedoch berichtet, dass dieser Ansatz unwirksam ist. Das folgende Beispiel veranschaulicht den versuchten alternativen Ansatz.
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)
Durch die Verwendung der Update-Methode und von Doc zur Angabe des aktualisierten Felds können Sie Datensätze in ElasticSearch mithilfe von olivere/elastic in Go effektiv aktualisieren.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3