GO 语言连接elasticsearch 并执行搜索,添加,增加日志打印

GO 语言连接elasticsearch 并执行搜索,添加,增加日志打印

package main

import (
   "context"
   "encoding/json"
   "fmt"
   "github.com/olivere/elastic/v7"
   "log"
   "os"
)

type Student struct {
   Name string `json:"name"`
}

func main() {
   host := "http://192.168.0.104:9200"

   logger := log.New(os.Stdout, "log:", log.LstdFlags)//设置log
   client, err := elastic.NewClient(elastic.SetURL(host), elastic.SetSniff(false), elastic.SetTraceLog(logger))
   if err != nil {
      fmt.Println(err)
      return
   }

   q := elastic.NewMatchQuery("name", "王")
   result, err := client.Search().Index("user").Query(q).Do(context.Background())
   if err != nil {
      fmt.Println(err)
      return
   }
   fmt.Println(result.Hits.TotalHits.Value)

   for _, value := range result.Hits.Hits {
      student := Student{}
      _ = json.Unmarshal(value.Source, &student)

      fmt.Println(student)
   }

   student := Student{Name: "王老五"}

   res, err := client.Index().Index("user").BodyJson(student).Do(context.Background())
   if err != nil {
      fmt.Println(err)
      return
   }
   fmt.Printf("%+v,%+v,%+v", res.Id, res.Type, res.Index)
}


最后编辑于:2022/02/24作者: 牛逼PHP

发表评论