Go でolivere/elastic を使用して ElasticSearch のレコードを更新する方法
ElasticSearch を使用する場合、多くの場合、レコードの更新が必要になります。 Go の Olivere/elastic パッケージは、レコードの更新など、ElasticSearch と対話するための包括的な機能セットを提供します。
UPDATE API を使用した部分的なレコードの更新
部分的なレコードの更新により、ドキュメント内の特定のフィールドを変更する場合。 Olivere/elastic は、部分的な更新を容易にする Update メソッドを提供します。次のコード スニペットは、UPDATE API を使用して単一のフィールド (「名前」) を更新する方法を示しています。
<code class="go">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)</code>
代替アプローチ (機能しない)
代替部分更新のアプローチでは、スクリプト方式を使用します。ただし、このアプローチは効果がないと報告されています。次の例は、試みられた代替アプローチを示しています。
<code class="go">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)</code>
Update メソッドと Doc を使用して更新されたフィールドを指定することで、Go のolivere/elastic を使用して ElasticSearch のレコードを効果的に更新できます。
以上がGo でolivere/elastic を使用して ElasticSearch で部分的なレコード更新を実行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。