Skip to content

Elasticsearch .NET 客户端入门 [8.16]

本页面指导您完成 .NET 客户端的安装过程,展示如何实例化客户端,以及如何使用它执行基本的 Elasticsearch 操作。

  • 支持 .NET Core、.NET 5+ 或 .NET Framework(4.6.1 及更高版本)。

安装 .NET 客户端

对于 SDK 风格的项目,运行以下命令安装最新版本的客户端:

shell
dotnet add package Elastic.Clients.Elasticsearch

更多安装信息,请参考安装页面

连接到 Elastic Cloud

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

csharp
var client = new ElasticsearchClient("<CLOUD_ID>", new ApiKey("<API_KEY>"));

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

img

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

img

其他连接选项,请参考连接部分

使用 Elasticsearch

本节将引导您完成 Elasticsearch 的基本且最重要的操作。更多操作和高级示例,请参考CRUD 使用示例页面

创建索引

以下是如何创建 my_index 索引:

csharp
var response = await client.Indices.CreateAsync("my_index");

索引文档

以下是如何简单地索引一个文档:

csharp
var doc = new MyDoc
{
    Id = 1,
    User = "flobernd",
    Message = "Trying out the client, so far so good?"
};

var response = await client.IndexAsync(doc, "my_index");

获取文档

您可以使用以下代码获取文档:

csharp
var response = await client.GetAsync<MyDoc>(id, idx => idx.Index("my_index"));

if (response.IsValidResponse)
{
    var doc = response.Source;
}

创建匹配查询

以下是如何使用 .NET 客户端创建单个匹配查询:

csharp
var response = await client.SearchAsync<MyDoc>(s => s
    .Index("my_index")
    .From(0)
    .Size(10)
    .Query(q => q
        .Term(t => t.User, "flobernd")
    )
);

if (response.IsValidResponse)
{
    var doc = response.Documents.FirstOrDefault();
}

更新文档

以下是如何更新文档,例如添加一个新字段:

csharp
doc.Message = "This is a new message";

var response = await client.UpdateAsync<MyDoc, MyDoc>("my_index", 1, u => u
    .Doc(doc));

删除文档和索引

csharp
var response = await client.DeleteAsync("my_index", 1);
csharp
var response = await client.Indices.DeleteAsync("my_index");