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 サイトの他の関連記事を参照してください。