Go에서 Olivere/elastic을 사용하여 ElasticSearch에서 레코드를 업데이트하는 방법은 무엇입니까?
ElasticSearch로 작업할 때 레코드 업데이트가 필요한 경우가 많습니다. Go용 Olivere/elastic 패키지는 레코드 업데이트를 포함하여 ElasticSearch와 상호 작용하기 위한 포괄적인 기능 세트를 제공합니다.
UPDATE API를 사용한 부분 레코드 업데이트
부분 레코드 업데이트를 허용합니다. 문서 내의 특정 필드를 수정합니다. Olivere/elastic은 부분 업데이트를 용이하게 하기 위해 Update 메서드를 제공합니다. 다음 코드 조각은 UPDATE API를 사용하여 단일 필드("이름")를 업데이트하는 방법을 보여줍니다.
<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>
대체 접근 방식(작동하지 않음)
대안 부분 업데이트에 대한 접근 방식은 스크립트 방법을 사용합니다. 그러나 이 접근법은 효과적이지 않은 것으로 보고되었습니다. 다음 예는 시도된 대체 접근 방식을 보여줍니다.
<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>
Update 메소드와 Doc을 사용하여 업데이트된 필드를 지정하면 Go에서 Olivere/elastic을 사용하여 ElasticSearch의 레코드를 효과적으로 업데이트할 수 있습니다.
위 내용은 Go에서 Olivere/elastic을 사용하여 ElasticSearch에서 부분 레코드 업데이트를 수행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!