在 .NET 客户端中使用 ES|QL

编辑

本页将帮助您理解和在 .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)
{
    // ...
}