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 중국어 웹사이트의 기타 관련 기사를 참조하세요!