Mengemas kini Rekod dalam ElasticSearch dengan Olivere/Elastic in Go
Memasukkan rekod ke dalam ElasticSearch menggunakan Olivere/Elastic adalah mudah. Walau bagaimanapun, apabila ia datang kepada kemas kini separa, dokumentasi untuk API KEMASKINI mungkin kurang. Begini cara anda boleh menggunakan API ini dengan Olivere/Elastic in Go.
Penyelesaian:
Untuk melakukan kemas kini separa, anda boleh menggunakan kod berikut:
<code class="go">update, err := client.Update().Index("test3").Type("user").Id("2").Doc(map[string]interface{}{"location": message}).Do() fmt.Println("updated id: ", update.Id)</code>
Kod ini mengemas kini lokasi medan dengan nilai pembolehubah mesej untuk dokumen dengan ID 2 dalam ujian indeks3.
Pendekatan Alternatif:
Pendekatan alternatif, yang telah dilaporkan sebagai tidak berjaya, ialah:
<code class="go">update := client.Update().Index("test3").Type("user").Id("2").Script(elastic.NewScript("ctx._source.location = loc").Params(map[string]interface{}{"loc": message}).Lang("groovy")) fmt.Println("updated id: ", update.Id)</code>
Jika anda menghadapi sebarang isu dengan pendekatan ini, contoh pertama harus memberikan penyelesaian yang boleh dipercayai untuk kemas kini separa menggunakan Olivere/Elastic in Go with ElasticSearch.
Atas ialah kandungan terperinci Bagaimana untuk Melakukan Kemas Kini Separa dalam ElasticSearch Menggunakan Olivere/Elastic dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!