>  기사  >  백엔드 개발  >  Go에서 Olivere/Elastic을 사용하여 ElasticSearch에서 부분 업데이트를 수행하는 방법은 무엇입니까?

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

Linda Hamilton
Linda Hamilton원래의
2024-10-24 18:37:04545검색

How to Perform Partial Updates in ElasticSearch Using Olivere/Elastic in Go?

Olivere/Elastic in Go를 사용하여 ElasticSearch에서 레코드 업데이트

Olivere/Elastic을 사용하여 ElasticSearch에 레코드를 삽입하는 것은 간단합니다. 그러나 부분 업데이트의 경우 UPDATE API에 대한 문서가 부족할 수 있습니다. Go에서 Olivere/Elastic과 함께 이 API를 사용하는 방법은 다음과 같습니다.

해결책:

부분 업데이트를 수행하려면 다음 코드를 사용할 수 있습니다.

<code class="go">update, err := client.Update().Index("test3").Type("user").Id("2").Doc(map[string]interface{}{"location": message}).Do()
fmt.Println("updated id: ", update.Id)</code>

이 코드는 test3 인덱스에서 ID가 2인 문서에 대한 메시지 변수 값으로 필드 위치를 업데이트합니다.

대체 접근 방식:

실패한 것으로 보고된 대체 접근 방식은 다음과 같습니다.

<code class="go">update := client.Update().Index("test3").Type("user").Id("2").Script(elastic.NewScript("ctx._source.location = loc").Params(map[string]interface{}{"loc": message}).Lang("groovy"))
fmt.Println("updated id: ", update.Id)</code>

이 접근 방식에서 문제가 발생하는 경우 첫 번째 예는 Go에서 Olivere/Elastic을 사용하여 부분 업데이트에 대한 안정적인 솔루션을 제공해야 합니다. 엘라스틱서치.

위 내용은 Go에서 Olivere/Elastic을 사용하여 ElasticSearch에서 부분 업데이트를 수행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.