作者:来自 Elastic Laura Trotta
动手体验Elasticsearch:在Elasticsearch Labs仓库中浏览我们的示例笔记本,开始免费云试用,或立即在本地机器上试用Elastic。
Elasticsearch 查询语言(ES*QL)是 Elasticsearch 的管道查询语言,专为直观的数据查询和操作而设计。请参阅我们的入门指南了解更多信息。
Elasticsearch Java 客户端支持 ES*通过 DSL 进行 QL 查询,但目前它将查询视为简单的字符串,没有专门的助手;虽然 Kibana 提供了出色的界面来构建 ES*QL 查询,但我们知道有时在集成开发环境(IDE)中拥有编写应用程序所需的一切内容,会带来更好的体验。因此,在 Java 客户端将其类型支持扩展到 ES*QL 之前,我们编写了一个 Intellij IDEA 插件,它会自动补全、语法检查、显示文档并执行 ES*QL 查询。
该插件目前支持 Java、Kotlin 和纯文本文件,以防你不喜欢 Java 虚拟机(JVM)。
更多信息请访问JetBrains市场页面和GitHub仓库。
像安装其他插件一样在 Intellij IDEA 中安装该插件,可以通过 JetBrains marketplace,或者进入 Settings -> Plugins -> Marketplace 并搜索 “ esql ”。
以下示例使用 Java 编写,但也支持 Kotlin,使用方式基本相同。
创建一个文本块字符串,在其上方写一个简单注释 “ ES*QL ”,即可完成。
// ES*QLString query = """""";
如果你看到左侧出现了弹性标志:

然后一切即可正常工作,你已经准备好编写你的查询。
为什么使用文本块而不是简单字符串?ES*QL 语法在多种上下文中接受引号,对其进行转义会在语法检查器中触发其他错误,因此我们选择使用文本块来保持简单。
对于 txt 文件来说更简单,因为你只需添加该注释,然后直接在下方开始编写查询:
// ES*QL
该插件可以连接到 Elasticsearch 服务器实例,以获取索引和字段名称,然后将它们添加到自动补全选项中。请在屏幕左下角(或你放置工具的位置)查找 Elastic 标志,并配置你到任意服务器实例的连接:


在文本块中开始输入时,会自动打开自动补全弹窗,它会返回一个可接受的命令/值列表,帮助你正确继续编写查询。如果你想手动触发自动补全,可以使用 IDE 的快捷键 ctrl + space:


该插件会高亮查询中的错误,并说明需要修复的内容:

将光标悬停在命令上会显示文档,说明该命令的用途以及其正确语法:

连接到服务器实例后,你可以点击 Elastic 图标旁边的绿色按钮来运行查询:结果将显示在工具窗口中:

或者如果你正在编写应用程序,可以像这样使用 Java 客户端:
// ES*QLString query = """FROM my-index* SORT year DESC* LIMIT 10"""; try (ElasticsearchClient client = ElasticsearchClient.of(e -> e .host(serverUrl) .apiKey(apiKey))) { client.esql().query(QueryRequest.of(qr -> qr.query(query))); } 查看我们之前关于 ES*QL Java Client 的文章,以获取将 ES*QL 结果映射到 Java 对象的完整示例。
这里没有 AI 参与;该插件基于 ES*QLANTLR语法来实现自动补全和语法检查,并使用Elasticsearch 文档来展示说明。
该插件仍处于实验阶段,因此欢迎你在 GitHub 仓库中提交任何 bug 或功能请求。
原文:https://www.elastic.co/search-labs/blog/esql-plugin-intellij-idea
,