介绍用于 Elasticsearch Ruby 客户端的 ES|QL 查询生成器

了解如何使用最近发布的用于 Elasticsearch Ruby 客户端的 ES|QL 查询生成器。这是一款使用 Ruby 代码更轻松地构建 ES|QL 查询的工具。

亲身体验 Elasticsearch:深入了解我们的示例笔记本,开始免费云服务试用,或立即在您的本地计算机上试用 Elastic。

我们最近发布了elastic-esql ,这是一个根据 Apache 2 许可证发布的 Ruby gem。有了这个 gem,你就可以用惯用的 Ruby 语言创建 Elastic 的ES|QL查询,然后将其用于 ES|QL 查询 API。ES|QL 允许开发人员通过查询过滤、转换和分析存储在 Elasticsearch 中的数据。它使用"管道" (| ) 来逐步处理数据。该 gem 使用 Ruby 函数,你可以将这些函数链入原始对象,以建立更复杂的查询:

ESQL

鲁比

安装

该 gem 可通过以下方式从 RubyGems 安装:

或者将其添加到项目的 Gemfile 中:

使用方法

您可以一次性建立一个完整的查询,也可以使用fromrow 等源命令创建一个查询对象,然后使用 ES|QL 方法链在其上建立查询。

to_s 方法中,gem 将代码转换为 ES|QL,因此在打印输出或转换为字符串时会返回 ES|QL 查询:

您可以使用! 中每个函数的对应函数来实例化查询对象并更改其初始状态:

该工具提供了将额外步骤链入 ES|QL 函数的便捷方法,如enrichsort 。一旦在Elastic::ESQL 对象上调用enrich ,就可以将onwith 与之连锁:

在使用sort 之后,您还可以将descascnulls_firstnulls_last 链入您的查询:

它还支持自定义字符串,以备您自己编写 ES|QL 查询或使用尚未添加到库中的功能。custom 会在查询结束时连接字符串。它将在发送到函数时添加这些字符,而不会添加任何管道字符。它们将通过一个空格字符与查询的其余部分合并。

您还可以将custom 功能串联起来:

在 Ruby 客户端使用 ES|QL 查询生成器

您可以通过发送查询对象,直接在elasticsearch-rubyesql.query API 中使用查询生成器:

您还可以将其与 Elasticsearch Ruby 客户端中的 ES|QL Helper 结合使用,了解更多详情

作为独立工具

该 gem 被设计为一个独立工具,用于以惯用方式构建 ES|QL 查询。它没有运行时依赖性,可以与官方 Elasticsearch Ruby 客户端一起使用,也可以单独使用。

生成的查询可在esql.query API 中使用,无论应用程序以何种方式与 Elasticsearch API 交互(无论是否使用 Ruby)。使用elastic-esql 创建查询后,生成的字符串就可以作为query 请求正文中的参数发送给应用程序接口。

我曾写过一篇关于将 Elasticsearch 与流行的 Ruby 工具结合使用的文章。该 gem 可与任何流行的 Ruby 工具一起使用,以通过 ES|QL 查询 Elasticsearch。

结论

该库正在积极开发中,最终的应用程序接口尚未完成。目前发布的是技术预览版。如果您对当前的应用程序接口或一般使用方法有任何反馈,请随时打开新问题。有关 Ruby ES|QL 查询生成器的更多信息,请参阅README

相关内容

准备好打造最先进的搜索体验了吗?

足够先进的搜索不是一个人的努力就能实现的。Elasticsearch 由数据科学家、ML 操作员、工程师以及更多和您一样对搜索充满热情的人提供支持。让我们联系起来,共同打造神奇的搜索体验,让您获得想要的结果。

亲自试用