¿Cómo actualizar un registro en ElasticSearch usando olivere/elastic en Go?
Cuando se trabaja con ElasticSearch, a menudo es necesario actualizar los registros. El paquete olivere/elastic para Go ofrece un conjunto completo de funciones para interactuar con ElasticSearch, incluidas actualizaciones de registros.
Actualización parcial de registros mediante UPDATE API
Las actualizaciones parciales de registros permiten para modificaciones a campos específicos dentro de un documento. Olivere/elastic proporciona el método Update para facilitar las actualizaciones parciales. El siguiente fragmento de código demuestra cómo actualizar un solo campo ("nombre") usando la API UPDATE.
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)
Enfoque alternativo (no funciona)
Un enfoque alternativo para las actualizaciones parciales utiliza el método Script. Sin embargo, se ha informado que este enfoque es ineficaz. El siguiente ejemplo ilustra el enfoque alternativo intentado.
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)
Al emplear el método Update y Doc para especificar el campo actualizado, puede actualizar registros de manera efectiva en ElasticSearch usando olivere/elastic en Go.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3