亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 google go 中使用 Olivere/elastic 更新 ElasticSearch

在 google go 中使用 Olivere/elastic 更新 ElasticSearch

Go
青春有我 2022-01-17 20:13:12
我正在使用 go 在彈性搜索中插入一條記錄,如此處所述:https ://github.com/olivere/elastic 現在,如果我必須部分更新它(假設只有一個像“名稱”這樣的條目),那么我想使用更新 API。我找不到任何描述如何在oilvere/elastic 中使用此API/函數的文檔。我想知道是否有人以前使用過這個并且可以幫助我。
查看完整描述

3 回答

?
ITMISS

TA貢獻1871條經驗 獲得超8個贊

所以,我終于讓這件事起作用了。這是我用來完成它的代碼。


update, err := client.Update().Index("test3").Type("user").Id("2").Doc(map[string]interface{}{"location": message}).Do()

fmt.Println("updated id: ", update.Id)

這對我來說很好。


我嘗試了另一種方法來更新它,但它不起作用。我把它貼在這里,以便人們可以查看和檢查。是這樣的。


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)

希望這對某人有幫助!


查看完整回答
反對 回復 2022-01-17
?
冉冉說

TA貢獻1877條經驗 獲得超1個贊

如果您使用的是github.com/olivere/elastic,請務必檢查單元測試。它們不僅可以作為更改的安全網,還可以說明如何使用該庫。例如update_test.goupdate_integration_test.go附帶了如何使用文檔中解釋的語法的示例列表。


查看完整回答
反對 回復 2022-01-17
?
弒天下

TA貢獻1818條經驗 獲得超8個贊

如果你想使用腳本,這里是一個條件更新的例子:


_, err := client.UpdateByQuery().

        Query(query).

        Index(index).

        Script(elastic.NewScript("ctx._source = tag").Params(map[string]interface{}{"tag": doc}).Lang("groovy")).

        Type(docType).IgnoreUnavailable(true).

        Do(ctx)


index是文檔所在的 ES 索引名稱。 查詢具有所有必要條件(例如:僅當年齡>18 時才更新文檔)。有關查詢的更多知識,請參閱此處。查詢的輸出將在 ctx.source 中可用,這里我將其設置為我傳遞的參數。您還可以執行以下操作: "ctx.source.salary = sal" 在這種情況下,sal 將是您將動態傳遞的參數之一。我希望,它有幫助。


查看完整回答
反對 回復 2022-01-17
  • 3 回答
  • 0 關注
  • 520 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號