当前位置: 首页 > news >正文

用于 IntelliJ IDEA 的新 ES|QL 插件

作者:来自 Elastic Laura Trotta

使用 IntelliJ IDEA 的新插件,在你的 IDE 中构建并运行 ES|QL 查询。

通过 Elasticsearch 实践操作:深入了解 Elasticsearch Labs 仓库中的示例 notebooks,开始免费云试用,或现在就在你的本地机器上尝试 Elastic。


Elasticsearch 查询语言( ES|QL )是 Elasticsearch 的管道式查询语言,旨在实现直观的数据查询和操作。请参考我们的入门指南以了解更多信息。

Elasticsearch Java 客户端通过 DSL 支持 ES|QL 查询,但目前它将查询视为简单字符串,没有专门的辅助工具;虽然 Kibana 提供了出色的 UI 来构建 ES|QL查询,但我们也意识到,有时在集成开发环境( IDE )中拥有编写应用程序所需的一切会带来更好的体验。因此,在 Java 客户端将其类型支持扩展到 ES|QL 之前,我们编写了一个 IntelliJ IDEA 插件,用于自动补全、语法检查、显示文档以及执行 ES|QL 查询。

该插件目前支持 Java、 Kotlin 和纯文本文件,以防 Java 虚拟机( JVM )不是你的选择。

请在 JetBrains Marketplace 页面和 GitHub 仓库中查看它,以获取更多信息。

前提条件

  • IDE:Intellij IDEA 版本 >= 253( community 或 ultimate )

使用方法

像安装其他插件一样在 Intellij IDEA 中安装该插件,可以通过 JetBrains marketplace,或者进入 Settings -> Plugins -> Marketplace 并搜索 “ esql ”。

以下示例使用 Java 编写,但也支持 Kotlin,使用方式基本相同。

创建一个文本块字符串,在其上方写一个简单注释 “ ES|QL ”,即可完成。

// ES|QL String query = """ """;

然后一切即可正常工作,你已经准备好编写你的查询。

为什么使用文本块而不是简单字符串?ES|QL 语法在多种上下文中接受引号,对其进行转义会在语法检查器中触发其他错误,因此我们选择使用文本块来保持简单。

对于 txt 文件来说更简单,因为你只需添加该注释,然后直接在下方开始编写查询:

// ES|QL

连接到服务器实例

该插件可以连接到 Elasticsearch 服务器实例,以获取索引和字段名称,然后将它们添加到自动补全选项中。请在屏幕左下角(或你放置工具的位置)查找 Elastic 标志,并配置你到任意服务器实例的连接:

自动补全

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

语法检查

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

文档

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

运行查询

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

或者如果你正在编写应用程序,可以像这样使用 Java 客户端:

// ES|QL String 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|QL ANTLR 语法来实现自动补全和语法检查,并使用 Elasticsearch 文档来展示说明。

结论

该插件仍处于实验阶段,因此欢迎你在 GitHub 仓库中提交任何 bug 或功能请求。

原文:https://www.elastic.co/search-labs/blog/esql-plugin-intellij-idea

http://www.jsqmd.com/news/638694/

相关文章:

  • 基于VideoAgentTrek Screen Filter的实时直播流内容过滤方案
  • 008、PEFT进阶:QLoRA量化技术与内存优化
  • 如何用SMUDebugTool精准优化你的AMD Ryzen处理器:免费开源硬件调试终极指南
  • 终极B站会员购抢票指南:如何用开源工具告别抢票焦虑
  • 终极显卡驱动清理指南:3步使用DDU彻底解决驱动残留问题
  • TMSpeech:打造Windows本地实时语音转文字的高效助手
  • LinkSwift:2025年八大网盘直链下载助手使用指南
  • 将虚拟机变成服务器
  • HUNYUAN-MT 7B翻译终端Dify平台集成实战:快速构建可视化翻译AI Agent
  • 持久化存储
  • 告别微信群消息转发烦恼:wechat-forwarding自动化消息流转解决方案
  • DeOldify效果展示:黑白电影剧照→高清彩色画面的跨时代视觉重生
  • 分享2026年铝合金门窗生产厂选购要点,哪个口碑好有答案 - mypinpai
  • Ubuntu 24.04 新系统到手,如何快速搞定PyTorch GPU环境?保姆级避坑指南
  • AI写春联实测:达摩院春联生成模型,输入‘平安‘秒出对联,年味十足
  • Bilibilidown下载 1.2.7 哔哩哔哩视频下载
  • SCI论文写作AI辅助工具有哪些?四款写论文的AI软件推荐,知网万方查重轻松通过! - 掌桥科研-AI论文写作
  • 有实力的宁波合规做不锈钢回收的企业分析,怎么选择靠谱的 - 工业推荐榜
  • BGE-M3多语言嵌入部署:100+语言统一向量空间构建方法论
  • CSDN开发者社区Qwen3-TTS-12Hz-1.7B-CustomVoice实战分享
  • NS-USBLoader终极指南:Switch文件传输与系统管理的完整解决方案
  • Go语言如何做服务网格_Go语言Service Mesh教程【推荐】
  • 技术合同认定避坑指南
  • pod基础篇
  • 可靠的宁波电线电缆回收公司聊聊,哪家性价比更高靠谱吗 - mypinpai
  • UnrealPakViewer终极指南:三步搞定虚幻引擎Pak文件深度解析
  • Apollo Save Tool:革命性PS4游戏存档管理神器
  • WeMod Patcher终极指南:三步免费解锁WeMod Pro高级功能
  • Elasticsearch搜索引擎深度解析:把搜索核心讲透,面试都是小菜
  • EldenRingFPSUnlockAndMore:艾尔登法环终极帧率解锁与游戏优化指南