ZBLOG

golang 使用Elasticsearch数据库,增删改查数据

使用Golang连接Elasticsearch数据库可以使用第三方库,如olivere/elastic

首先需要安装该库:

  1. go get github.com/olivere/elastic

然后在代码中引入该库:

  1. import (
  2. "context"
  3. "fmt"
  4. "github.com/olivere/elastic/v7"
  5. )

接下来就可以进行增删改查操作了。

连接数据库

  1. ctx := context.Background()
  2. client, err := elastic.NewClient(elastic.SetURL("http://localhost:9200"))
  3. if err != nil {
  4. panic(err)
  5. }

插入数据

  1. type User struct {
  2. Name string `json:"name"`
  3. Age int `json:"age"`
  4. }
  5. user := User{Name: "John", Age: 30}
  6. _, err = client.Index().
  7. Index("users").
  8. BodyJson(user).
  9. Do(ctx)
  10. if err != nil {
  11. panic(err)
  12. }

查询数据

查询所有数据

  1. res, err := client.Search().
  2. Index("users").
  3. Query(elastic.MatchAllQuery{}).
  4. Do(ctx)
  5. if err != nil {
  6. panic(err)
  7. }
  8. var users []User
  9. for _, hit := range res.Hits.Hits {
  10. var user User
  11. if err := json.Unmarshal(hit.Source, &user); err != nil {
  12. // handle error
  13. }
  14. users = append(users, user)
  15. }
  16. fmt.Printf("Found %d users\n", len(users))

根据条件查询数据

  1. query := elastic.NewMatchQuery("name", "John")
  2. res, err := client.Search().
  3. Index("users").
  4. Query(query).
  5. Do(ctx)
  6. if err != nil {
  7. panic(err)
  8. }
  9. var users []User
  10. for _, hit := range res.Hits.Hits {
  11. var user User
  12. if err := json.Unmarshal(hit.Source, &user); err != nil {
  13. // handle error
  14. }
  15. users = append(users, user)
  16. }
  17. fmt.Printf("Found %d users\n", len(users))

更新数据

  1. update := elastic.NewUpdateRequest().
  2. Index("users").
  3. Id("1").
  4. Doc(map[string]interface{}{"age": 40})
  5. _, err = client.Update(update).Do(ctx)
  6. if err != nil {
  7. panic(err)
  8. }

删除数据

  1. delete := elastic.NewDeleteRequest().
  2. Index("users").
  3. Id("1")
  4. _, err = client.Delete(delete).Do(ctx)
  5. if err != nil {
  6. panic(err)
  7. }

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=4579

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?