SuperAPI AI 工具集

elasticsearch-esql

数据与分析

查看项目

更新于 10-15 23:46

技能介绍

用途:通过 ES|QL(Elasticsearch Query Language)管道查询语言访问 Elasticsearch 数据,适用于查询数据、分析日志、聚合指标和探索数据。ES|QL 不同于 Query DSL、SQL 和 EQL,使用竖线串联命令,如 FROM index | WHERE condition | STATS aggregation BY field | SORT field | LIMIT n。

主要能力:列出索引、查看字段映射、执行原始 ES|QL 查询,并支持 TSV 输出(--tsv、--no-header)。可处理全文检索(MATCH、QSTR、KQL)、字符串提取(DISSECT、GROK、SPLIT)、日志分类(CATEGORIZE)、变化点检测(CHANGE_POINT)、时间序列(TS、TBUCKET、RATE)、PromQL(9.4+ 预览)以及 LOOKUP JOIN 数据富化。

使用方式:先运行 node scripts/esql.js test 验证连接,失败则停止并参考环境配置。随后用 node scripts/esql.js indices "pattern*" 和 node scripts/esql.js schema "index-name" 发现结构,禁止猜测索引或字段名。执行查询示例:node scripts/esql.js raw "FROM logs-* | STATS count = COUNT(*) BY host.name | SORT count DESC | LIMIT 5" --tsv。

限制:ES|QL 要求被查询索引启用 _source,否则查询失败。功能随版本变化,LOOKUP JOIN 需 8.18+、MATCH 需 8.17+、INLINE STATS 需 9.2+;Serverless 部署(build_flavor 为 serverless)可视为具备全部 GA 与预览功能。CATEGORIZE 与 CHANGE_POINT 需 Platinum 许可。PROMQL 不支持 group 修饰符、集合运算符及 histogram_quantile 等函数。具体环境配置与完整语法参见资料中的参考文档。