入门

编辑

本页面指导您完成 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。