Gunakan API Kemas Kini dalam olivere/elastic untuk Kemas Kini Separa Rekod dalam Go
Dalam Go, mengemas kini rekod dalam ElasticSearch boleh dilakukan sebahagiannya menggunakan API Kemas Kini. Olivere/elastic, pelanggan Go yang popular untuk ElasticSearch, menyediakan fungsi untuk melaksanakan kemas kini. Berikut ialah penjelasan terperinci tentang cara menggunakan API Kemas Kini dalam oilvere/elastic:
Untuk melakukan kemas kini separa, gunakan kaedah client.Update(). Anda boleh menentukan indeks, jenis dan ID rekod untuk dikemas kini. Kaedah Doc() membolehkan anda menyediakan data untuk dikemas kini.
<code class="go">import ( "context" "fmt" "github.com/olivere/elastic/v7" ) func main() { ctx := context.Background() // Connect to ElasticSearch client, err := elastic.NewClient(elastic.SetURL("http://localhost:9200")) if err != nil { // Handle error } // Create example data _, err = client.Update().Index("test3").Type("user").Id("2").Doc(map[string]interface{}{"location": "new location"}).Do(ctx) if err != nil { // Handle error } fmt.Println("Record updated!") }</code>
Dalam kod di atas, kami menyediakan peta dengan medan untuk dikemas kini sebagai kunci dan nilai baharu sebagai nilai. Anda boleh menggunakan kaedah ini untuk mengemas kini mana-mana medan rekod.
Pendekatan Alternatif (Tidak Berfungsi)
Walaupun pendekatan di atas mudah dan berkesan, anda mungkin menghadapi masalah apabila menggunakan kaedah Skrip untuk mengemas kini rekod. Berikut ialah contoh kemas kini berasaskan skrip yang tidak berjaya:
<code class="go">// Update record using script script := elastic.NewScript("ctx._source.location = loc").Params(map[string]interface{}{"loc": message}).Lang("groovy") _, err = client.Update().Index("test3").Type("user").Id("2").Script(script).Do(ctx)</code>
Pendekatan ini mungkin tidak berfungsi kerana potensi pepijat dalam versi olivere/elastic 7.8.0. Adalah disyorkan untuk kekal dengan pendekatan pertama untuk kemas kini separa yang boleh dipercayai dan konsisten dalam ElasticSearch menggunakan olivere/elastic.
Atas ialah kandungan terperinci Bagaimana untuk Melakukan Kemas Kini Separa Dokumen dalam ElasticSearch dengan olivere/elastic dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!