ホームページ  >  記事  >  バックエンド開発  >  Go で Olivere/Elastic を使用して ElasticSearch で部分更新を実行する方法

Go で Olivere/Elastic を使用して ElasticSearch で部分更新を実行する方法

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-24 18:37:04545ブラウズ

How to Perform Partial Updates in ElasticSearch Using Olivere/Elastic in Go?

Go の Olivere/Elastic を使用した ElasticSearch のレコードの更新

Olivere/Elastic を使用して ElasticSearch にレコードを挿入するのは簡単です。ただし、部分的なアップデートに関しては、UPDATE API のドキュメントが不足している可能性があります。 Go の Olivere/Elastic でこの API を使用する方法は次のとおりです。

解決策:

部分的な更新を実行するには、次のコードを使用できます。

<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>

このコードは、インデックス test3 内の ID 2 を持つドキュメントのメッセージ変数の値でフィールドの場所を更新します。

代替アプローチ:

失敗したと報告されている代替アプローチは次のとおりです:

<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>

このアプローチで問題が発生した場合、最初の例は、Go で Olivere/Elastic を使用して部分更新の信頼できる解決策を提供するはずです。 ElasticSearch.

以上がGo で Olivere/Elastic を使用して ElasticSearch で部分更新を実行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。