用途:该技能用于对 Elasticsearch 执行 ES|QL(Elasticsearch Query Language)查询,适用于查询数据、分析日志、聚合指标和探索数据等场景。ES|QL 是基于管道符(|)的查询语言,与 Query DSL、SQL、EQL 均不同,基本形式为 FROM index | WHERE 条件 | STATS 聚合 BY 字段 | SORT 字段 | LIMIT n。
主要能力:支持模式发现、过滤、EVAL 计算字段、STATS 聚合、SORT/LIMIT、全文检索(MATCH、QSTR、KQL)、字符串提取(DISSECT、GROK、SPLIT、LOCATE)、日志分类(CATEGORIZE)、变化点检测(CHANGE_POINT)、时间序列查询(TS、TBUCKET、RATE)、LOOKUP JOIN 数据富化、多值字段过滤(MV_CONTAINS、MV_COUNT)、近似统计(SET approximation=true)以及 PROMQL 源命令(9.4+ 预览)。
使用方式:通过 elastic CLI 执行操作,不直接调用 HTTP API,也不猜测凭据。流程为:先调用 GET / 确认连接并判断部署类型(build_flavor 为 serverless 时视为全部功能可用,为 default 时按 version.number 判断);再用 GET /_cat/indices 列出候选索引、GET /{index}/_mapping 获取字段类型;用 GET /{index}/_settings/index.mode 判断是否为 time_series;最后用 POST /_query 执行查询并请求表格(TSV)输出。
限制:ES|QL 要求被查询索引启用 _source,否则查询失败。ES|QL 自 8.11 引入(技术预览),8.14 GA;LOOKUP JOIN(8.18+)、MATCH(8.17+)、INLINE STATS(9.2+)等特性依赖版本,8.18 之前可用 ENRICH 替代 LOOKUP JOIN,INLINE STATS 与 counter 字段 RATE() 在 9.2 前无替代方案。CATEGORIZE 与 CHANGE_POINT 需 Platinum 许可。近似统计在 9.5+/Serverless GA、9.4 预览,且 COUNT_DISTINCT、MIN、MAX、FIRST、LAST、TOP 等不支持近似。PROMQL 不支持 group 修饰符、集合运算符及 histogram_quantile、predict_linear、label_join 等函数。若 elastic CLI 未安装,应告知用户其用途,不得猜测凭据或改用其他方式。