Go语言操作Elasticsearch工具类来袭

690 阅读1分钟

正常我们操作es的时候,都是有过二次封装的。

连接es

func newClient() *Es {

	client, err := NewClient("http://127.0.0.1:9200")

	if err != nil {

		fmt.Println(err)

		return nil

	}

	return client

}

测试是否连接成功

// 测试下客户端是否连接创建成功

func TestNewClient(t *testing.T) {

	es := newClient()

	fmt.Println(es.clinet.String())

}

查看索引是否存在

// 查询索引是否存在

func TestEs_IndexExists(t *testing.T) {

	exists, err := newClient().IndexExists("person")

	if err != nil {

		fmt.Println("查询索引存在失败:" + err.Error())

		return

	}

	fmt.Println("索引是否存在:", exists)

}

插入一条数据

// 插入一条数据测试下

func TestEs_InsertDocument(t *testing.T) {

	d := Employee{

		FirstName: "梅梅2",

		LastName:  "郑直2",

		Age:       22,

		About:     "v2.0",

		Interests: []string{"梅总2", "郑总2"},

	}

	err := newClient().InsertDocument("person", "2", d)

	if err != nil {

		fmt.Println("插入报错: " + err.Error())

		return

	}

}

查询一条数据

// 查询一条数据出来

func TestEs_SearchDocumentId(t *testing.T) {

	res, err := newClient().SearchDocumentId("person", "2")

	if err != nil {

		fmt.Println("查询出错:" + err.Error())

		return

	}

	fmt.Println("查询结果为:" + res)

}

删除索引 以及文档

func TestEs_DeleteDocument(t *testing.T) {

	err := newClient().DeleteDocument("person", "1")

	if err != nil {

		log.Fatalln("删除失败: " + err.Error())

	}

}

更新文档

func TestEs_UpdateDocument(t *testing.T) {



	d := Employee{

		FirstName: "梅梅1",

		LastName:  "郑直1",

		Age:       22,

		About:     "v1.0",

		Interests: []string{"梅总1", "郑总1"},

	}



	err := newClient().UpdateDocument("person", "1", &d)

	if err != nil {

		log.Fatalln("修改失败")

	}

}

更新或者插入 如果存在就更新,不存在就插入

func TestEs_UpdateOrInsertDocument(t *testing.T) {

	d := Employee{

		FirstName: "梅梅2",

		LastName:  "郑直2",

		Age:       22,

		About:     "v1.0",

		Interests: []string{"梅总2", "郑总2"},

	}



	err := newClient().UpdateOrInsertDocument("person", "1", &d)

	if err != nil {

		log.Fatalln("更新插入失败:" + err.Error())

	}

}

以上是es v7操作的部分工具类代码

仓库地址:https://gitee.com/golang520/elasticsearch