入门编辑

本页将引导您完成 Go 客户端的安装过程,并向您展示如何实例化客户端以及如何使用它执行基本的 Elasticsearch 操作。您可以将客户端与低级 API 或完全类型化的 API 一起使用。本入门指南将向您展示两种 API 的示例。

要求编辑

Go 版本 1.21+

安装编辑

要安装最新版本的客户端,请运行以下命令

go get github.com/elastic/go-elasticsearch/v8@latest

请参阅 安装 页面以了解更多信息。

连接编辑

您可以使用 API 密钥和 Elasticsearch 端点连接到 Elastic Cloud,以使用低级 API

client, err := elasticsearch.NewClient(elasticsearch.Config{
    CloudID: "<CloudID>",
    APIKey: "<ApiKey>",
})

您可以在部署的 我的部署 页面上找到您的 Elasticsearch 端点

Finding Elasticsearch endpoint

您可以在安全下的 管理 页面上生成 API 密钥。

Create API key

有关其他连接选项,请参阅 连接 部分。

操作编辑

现在开始使用 Elasticsearch!本节将引导您完成 Elasticsearch 的基本操作和最重要的操作。有关更多操作和更高级的示例,请参阅 示例 页面。

创建索引编辑

这是使用低级 API 创建 my_index 索引的方法

client.Indices.Create("my_index")

索引文档编辑

这是使用低级 API 索引文档的简单方法

document := struct {
    Name string `json:"name"`
}{
    "go-elasticsearch",
}
data, _ := json.Marshal(document)
client.Index("my_index", bytes.NewReader(data))

获取文档编辑

您可以使用以下代码使用低级 API 获取文档

client.Get("my_index", "id")

搜索文档编辑

这是使用低级 API 创建单个匹配查询的方法

query := `{ "query": { "match_all": {} } }`
client.Search(
    client.Search.WithIndex("my_index"),
    client.Search.WithBody(strings.NewReader(query)),
)

更新文档编辑

这是使用低级 API 更新文档(例如添加新字段)的方法

client.Update("my_index", "id", strings.NewReader(`{doc: { language: "Go" }}`))

删除文档编辑

client.Delete("my_index", "id")

删除索引编辑

client.Indices.Delete([]string{"my_index"})

进一步阅读编辑

  • 了解有关 类型化 API 的更多信息,这是一个针对 Elasticsearch 的强类型 Golang API。