正常我们操作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())
}
}