"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como realizar atualizações parciais de registros no ElasticSearch usando olivere/elastic no Go?

Como realizar atualizações parciais de registros no ElasticSearch usando olivere/elastic no Go?

Publicado em 2024-11-05
Navegar:803

How to Perform Partial Record Updates in ElasticSearch Using olivere/elastic in Go?

Como atualizar um registro no ElasticSearch usando olivere/elastic no Go?

Ao trabalhar com o ElasticSearch, muitas vezes é necessário atualizar registros. O pacote olivere/elastic para Go oferece um conjunto abrangente de recursos para interagir com o ElasticSearch, incluindo atualizações de registros.

Atualização parcial de registros usando UPDATE API

Atualizações parciais de registros permitem para modificações em campos específicos em um documento. Olivere/elastic fornece o método Update para facilitar atualizações parciais. O trecho de código a seguir demonstra como atualizar um único campo ("nome") usando a 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)

Abordagem alternativa (não funciona)

Uma abordagem alternativa para atualizações parciais usa o método Script. No entanto, esta abordagem foi relatada como ineficaz. O exemplo a seguir ilustra a tentativa de abordagem alternativa.

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)

Ao empregar o método Update e Doc para especificar o campo atualizado, você pode atualizar efetivamente os registros no ElasticSearch usando olivere/elastic no Go.

Declaração de lançamento Este artigo foi reimpresso em: 1729739242 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3