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

DDD
풀어 주다: 2024-10-24 11:49:02
원래의
762명이 탐색했습니다.

How to Perform Partial Document Updates in ElasticSearch with olivere/elastic in Go?

Go에서 부분 레코드 업데이트를 위해 Olivere/elastic에서 업데이트 API 사용

Go에서 ElasticSearch의 레코드 업데이트는 다음을 사용하여 부분적으로 수행할 수 있습니다. 업데이트 API. ElasticSearch의 인기 있는 Go 클라이언트인 Olivere/elastic은 업데이트 수행 기능을 제공합니다. 다음은 oilvere/elastic에서 업데이트 API를 사용하는 방법에 대한 자세한 설명입니다.

부분 업데이트를 수행하려면 client.Update() 메서드를 사용하세요. 업데이트할 레코드의 인덱스, 유형, ID를 지정할 수 있습니다. Doc() 메소드를 사용하면 업데이트할 데이터를 제공할 수 있습니다.

<code class="go">import (
    "context"
    "fmt"

    "github.com/olivere/elastic/v7"
)

func main() {
    ctx := context.Background()

    // Connect to ElasticSearch
    client, err := elastic.NewClient(elastic.SetURL("http://localhost:9200"))
    if err != nil {
        // Handle error
    }

    // Create example data
    _, err = client.Update().Index("test3").Type("user").Id("2").Doc(map[string]interface{}{"location": "new location"}).Do(ctx)
    if err != nil {
        // Handle error
    }

    fmt.Println("Record updated!")
}</code>
로그인 후 복사

위 코드에서는 업데이트할 필드를 키로, 새 값을 값으로 포함하는 맵을 제공합니다. 이 방법을 사용하면 레코드의 모든 필드를 업데이트할 수 있습니다.

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

위 접근 방식은 간단하고 효과적이지만 문제가 발생할 수 있습니다. Script 메서드를 사용하여 레코드를 업데이트할 때. 다음은 실패한 스크립트 기반 업데이트의 예입니다.

<code class="go">// Update record using script
script := elastic.NewScript("ctx._source.location = loc").Params(map[string]interface{}{"loc": message}).Lang("groovy")

_, err = client.Update().Index("test3").Type("user").Id("2").Script(script).Do(ctx)</code>
로그인 후 복사

이 접근 방식은 Olivere/elastic 버전 7.8.0의 잠재적인 버그로 인해 작동하지 않을 수 있습니다. Olivere/elastic을 사용하여 ElasticSearch에서 안정적이고 일관된 부분 업데이트를 위해 첫 번째 접근 방식을 고수하는 것이 좋습니다.

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

원천:php
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!