Maison >développement back-end >Golang >Comment effectuer des mises à jour partielles des enregistrements dans ElasticSearch à l'aide d'olivere/elastic dans Go ?
Comment mettre à jour un enregistrement dans ElasticSearch à l'aide d'olivere/elastic dans Go ?
Lorsque vous travaillez avec ElasticSearch, la mise à jour des enregistrements est souvent nécessaire. Le package olivere/elastic pour Go offre un ensemble complet de fonctionnalités pour interagir avec ElasticSearch, y compris les mises à jour d'enregistrements.
Mise à jour partielle des enregistrements à l'aide de l'API UPDATE
Les mises à jour partielles des enregistrements permettent pour les modifications apportées à des champs spécifiques dans un document. Olivere/elastic fournit la méthode Update pour faciliter les mises à jour partielles. L'extrait de code suivant montre comment mettre à jour un seul champ (« nom ») à l'aide de l'API UPDATE.
<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>
Approche alternative (ne fonctionne pas)
Une alternative L'approche des mises à jour partielles utilise la méthode Script. Cependant, cette approche s’est révélée inefficace. L'exemple suivant illustre l'approche alternative tentée.
<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>
En employant la méthode Update et Doc pour spécifier le champ mis à jour, vous pouvez mettre à jour efficacement les enregistrements dans ElasticSearch en utilisant olivere/elastic dans Go.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!