ES|QL 在 .NET 客户端

编辑

此页面帮助您了解和使用 .NET 客户端中的 ES|QL

在 .NET 客户端中使用 ES|QL 有两种方法

  • 直接使用 Elasticsearch ES|QL API:这是最灵活的方法,但也是最复杂的方法,因为您必须以原始形式处理结果。您可以选择结果的精确格式,例如 JSON、CSV 或文本。
  • 使用 ES|QL 高级助手:这些助手负责将原始响应解析为应用程序可直接使用的内容。针对不同的用例提供了多个助手,例如对象映射、结果的游标遍历(开发中)和数据帧(开发中)。

如何使用 ES|QL API

编辑

ES|QL 查询 API 允许您指定结果的返回方式。您可以选择 响应格式,例如 CSV、文本或 JSON,然后使用列分隔符和语言环境等参数对其进行微调。

以下示例获取 ES|QL 结果作为 CSV 并对其进行解析

var response = await client.Esql.QueryAsync(r => r
	.Query("FROM index")
	.Format("csv")
);
var csvContents = Encoding.UTF8.GetString(response.Data);

使用 ES|QL 结果

编辑

前面的示例表明,尽管原始 ES|QL API 提供了最大的灵活性,但仍需要额外的工作才能使用结果数据。

为了简化操作,尝试使用 ES|QL 结果的这三种主要表示形式(每种都有自己的映射助手)

  • 对象,其中结果中的每一行都映射到应用程序域中的一个对象。这类似于 ORM(对象关系映射器)通常执行的操作。
  • 游标,您逐行扫描结果并使用列名访问数据。这类似于数据库访问库。
  • 数据帧,其中结果以列式结构组织,允许有效处理列数据。
// ObjectAPI example
var response = await client.Esql.QueryAsObjectsAsync<Person>(x => x.Query("FROM index"));
foreach (var person in response)
{
    // ...
}