在 .NET 客户端中使用 ES|QL
编辑在 .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) { // ... }