【ES】Go操作elasticsearch
package main
import (
"context"
"fmt"
"log"
"os"
"github.com/elastic/go-elasticsearch/v8"
"github.com/elastic/go-elasticsearch/v8/esapi"
)
var (
// 初始化Elasticsearch客户端
es, _ = elasticsearch.NewClient(elasticsearch.Config{
Addresses: []string{"http://localhost:9200"},
})
)
func main() {
// 创建上下文
ctx := context.Background()
// 创建Ping请求
res, err := es.Ping(es.Ping.WithContext(ctx))
if err != nil {
log.Fatalf("Error: %s", err)
}
defer res.Body.Close()
// 输出响应状态
fmt.Fprintf(os.Stdout, "Elasticsearch returned with code %d\n", res.StatusCode)
// 创建一个简单的索引请求
var rsp *esapi.Response
var err error
if rsp, err = es.Info(es.Info.WithContext(ctx)); err != nil {
log.Fatalf("Error getting response: %s", err)
}
defer rsp.Body.Close()
// 输出响应的JSON到控制台
if err := es.Transport.(*elasticsearch.Transport).UnmarshalResponse(rsp, os.Stdout); err != nil {
log.Fatalf("Error unmarshalling response: %s", err)
}
}
这段代码演示了如何在Go语言中使用Elasticsearch的官方Go客户端库go-elasticsearch
来执行基本的Elasticsearch操作,例如Ping集群和获取集群信息。这是一个简单的例子,展示了如何开始在Go中使用Elasticsearch。
评论已关闭