Maison >développement back-end >Golang >Comment effectuer des mises à jour partielles des enregistrements dans ElasticSearch à l'aide d'olivere/elastic dans Go ?

Comment effectuer des mises à jour partielles des enregistrements dans ElasticSearch à l'aide d'olivere/elastic dans Go ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-24 12:03:02735parcourir

How to Perform Partial Record Updates in ElasticSearch Using olivere/elastic in 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn