"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Go에서 Olivere/elastic을 사용하여 ElasticSearch에서 부분 레코드 업데이트를 수행하는 방법은 무엇입니까?

Go에서 Olivere/elastic을 사용하여 ElasticSearch에서 부분 레코드 업데이트를 수행하는 방법은 무엇입니까?

2024-11-05에 게시됨
검색:487

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

Go에서 Olivere/elastic을 사용하여 ElasticSearch에서 레코드를 업데이트하는 방법은 무엇입니까?

ElasticSearch로 작업할 때 레코드 업데이트가 필요한 경우가 많습니다. Go용 Olivere/elastic 패키지는 레코드 업데이트를 포함하여 ElasticSearch와 상호 작용하기 위한 포괄적인 기능 세트를 제공합니다.

UPDATE API를 사용한 부분 레코드 업데이트

부분 레코드 업데이트를 허용합니다. 문서 내의 특정 필드를 수정합니다. Olivere/elastic은 부분 업데이트를 용이하게 하기 위해 Update 메서드를 제공합니다. 다음 코드 조각은 UPDATE API를 사용하여 단일 필드("이름")를 업데이트하는 방법을 보여줍니다.

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)

대체 접근 방식(작동하지 않음)

부분 업데이트에 대한 대체 접근 방식은 스크립트 메서드를 사용합니다. 그러나 이 접근법은 효과적이지 않은 것으로 보고되었습니다. 다음 예에서는 시도된 대체 접근 방식을 보여줍니다.

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)

Update 메서드와 Doc을 사용하여 업데이트된 필드를 지정하면 Go에서 Olivere/elastic을 사용하여 ElasticSearch의 레코드를 효과적으로 업데이트할 수 있습니다.

릴리스 선언문 이 글은 1729739242에서 재인쇄되었습니다. 침해 내용이 있는 경우, [email protected]으로 연락하여 삭제하시기 바랍니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3