dongsimang4036 2016-06-23 10:53 采纳率: 100%
浏览 528
已采纳

在Google Go中使用Olivere / Elastic更新ElasticSearch中的记录

I am inserting a record in elastic search using go as stated here: https://github.com/olivere/elastic Now , if i have to partially update it(suppose if just one entry like 'name'), then i want to use UPDATE API. I cannot find any any documentation where they describe how to use this API/function in oilvere/elastic. I wonder if someone has used this before and could help me in this.

  • 写回答

2条回答 默认 最新

  • duan5731 2016-06-23 14:27
    关注

    So, I finally got this thing working. Here is the code that i used to get it done.

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

    This is working fine for me.

    I tried another approach to update it but it wasn't working. I am posting it here so one can view it and check. It was something like this.

    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)
    

    Hope this helps someone!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?