go操作Elasticsearch简单示例

 

go操作Elasticsearch主要有以下两个sdk

  • github.com/olivere/elastic 
  • github.com/elastic/go-elasticsearch 
  • 我们这里选择第一个
package main
 
import (
	"context"
	"fmt"
	"github.com/olivere/elastic"
)
 
创建索引:
func main(){
	Client, err := elastic.NewClient(elastic.SetURL("http://192.168.7.6:9200"))
	fmt.Println(Client, err)
	name := "people2"
	Client.CreateIndex(name).Do(context.Background())
}

插入数据
func main(){
	Client, err := elastic.NewClient(elastic.SetURL("http://192.168.7.6:9200"))
	fmt.Println(Client, err)
	name := "people2"
	data := `{
	"name": "wali",
	"country": "Chian",
	"age": 30,
	"date": "1987-03-07"
	}`
	_, err = Client.Index().Index(name).Type("man1").Id("1").BodyJson(data).Do(context.Background())
 
}
 
查找数据: //通过id查找
func main(){
	Client, err := elastic.NewClient(elastic.SetURL("http://192.168.7.6:9200"))
	fmt.Println(Client, err)
	name := "people2"
	get, err := Client.Get().Index(name).Type("man1").Id("1").Do(context.Background())
	fmt.Println(get, err)
 
}



//修改
func main() {
	Client, err := elastic.NewClient(elastic.SetURL("http://192.168.7.6:9200"))
    	res, err := client.Update().
        Index("megacorp").
        Type("employee").
        Id("2").
        Doc(map[string]interface{}{"age": 88}).
        Do(context.Background())
    	if err != nil {
        	println(err.Error())
    	}
    	fmt.Printf("update age %s\n", res.Result)
 
}



删除数据
func main(){
	Client, err := elastic.NewClient(elastic.SetURL("http://192.168.7.6:9200"))
	//使用结构体
    	e1 := Employee{"Jane", "Smith", 32, "I like to collect rock albums", []string{"music"}}
	//创建
    	put1, err := client.Index().
        Index("megacorp").
        Type("employee").
        Id("1").
        BodyJson(e1).
        Do(context.Background())
    	if err != nil {
       		panic(err)
    	}
	//删除
	get, err := Client.Get().Index("megacorp").Type("employee").Id("1").Do(context.Background())
	fmt.Println(get, err)
}

  

猜你喜欢

转载自www.cnblogs.com/-wenli/p/12737196.html