
文章目录elasticsearch-sql用 SQL 查 Elasticsearch 的老牌插件它能做什么怎么装一个绕不开的提醒我看它的实际价值elasticsearch-sql用 SQL 查 Elasticsearch 的老牌插件Elasticsearch 的查询 DSL 学习成本不低团队里没碰过 ES 的人写起来犯怵。NLPchina 维护的 elasticsearch-sql 插件把这事的门槛拉到地面让你直接用熟悉的 SQL 语法去查 ES。仓库目前收到 7013 个 star在国内 ES 圈子里流传比较广。它能做什么简单讲就是把 SQL 翻译成 ES 的查询 DSL。基础查询、聚合、删除都支持写法跟你平时写 MySQL 差不多。比如查年龄大于 30 的男性用户或者按性别分组统计年龄的最大最小均值都能用一行 SQL 搞定。聚合之外还覆盖了一些 ES 特有的能力。matchQuery 做全文检索、range 按数值或日期分段、GEO_BOUNDING_BOX 做地理范围筛选这些都能用 SQL 表达出来。CASE WHEN、IF、CONCAT_WS 这类 SQL 标准函数也在支持列表里。怎么装按 ES 版本对照插件版本仓库 README 给了一张从 1.x 一直列到 9.3.4 的对照表。安装方式就是一行 plugin 命令把对应版本的 zip 包拉下来./bin/elasticsearch-plugin install 对应版本zip下载地址zip 地址去仓库的 releases 页面拿每个 ES 版本对应一个独立的发布包。装完必须重启 ES 服务否则会碰到Invalid index name [sql]这类报错。前端查询界面在 1.x/2.x 时代直接访问localhost:9200/_plugin/sql/就能用5.x 之后官方推荐装一个 elasticsearch-sql-site 的 Chrome 扩展。一个绕不开的提醒README 顶部写着 DEPRECATED。作者明确说这个项目已经不再积极开发建议改用官方的 x-pack-sql或者 AWS 支持的 OpenDistro for Elasticsearch SQL。所以现在选型时心里要有数新项目直接用官方 SQL 接口更稳妥老项目还在用它主要是历史包袱舍不得换。7.5.0.0 这个版本是个分水岭。从这版开始请求路径从/_sql改成了/_nlpcn/sqlexplain 接口同步改成/_nlpcn/sql/explain。如果项目里集成了它升级版本的时候这块要全局替换。我看它的实际价值它的定位是过渡工具不是长期方案。团队里 SQL 老手多 ES 新手少的时候用它让后端同事先跑起来做数据分析很顺手不用为了查几个指标临时去学 DSL。JDBC 实验性支持也开了口子对接一些 BI 工具的时候方便。但功能上它没法跟官方 x-pack-sql 比方。官方版本对 SQL 标准的支持更完整、性能优化也更上心。社区版的 elasticsearch-sql 胜在跨版本覆盖广从 1.x 到 9.x 都能找到对应发布包老 ES 实例升不动的时候它是少数几个还能挂上去的方案。如果是新项目从零开始直接上官方 SQL。如果是历史项目要救火或者要在多个 ES 版本之间做统一查询层这个插件还有它的用处。仓库虽然不再活跃维护但代码还在那摆着碰到问题自己改也能跑。有它的用处。仓库虽然不再活跃维护但代码还在那摆着碰到问题自己改也能跑。