@elastic/esql-definitions
ESQQL和PromQL语言的共享定义——命令,功能,,, 运算符、设置及其元数据.
安装
npm install @elastic/esql-definitions
使用量
主条目有手持姓名表和定义 类型脚本 :
import { commandsNames, functionNames } from '@elastic/esql-definitions';
import type { FunctionDefinition } from '@elastic/esql-definitions';
完整定义元数据(从 elasticsearch (repo) 已曝光
通过子路径导出 :
import { commandDefinitions } from '@elastic/esql-definitions/commands';
import { functionDefinitions } from '@elastic/esql-definitions/functions';
import { operatorDefinitions } from '@elastic/esql-definitions/operators';
import { settingDefinitions } from '@elastic/esql-definitions/settings';
import { inlineCasts } from '@elastic/esql-definitions/inline-cast';
import { timeSeriesAggregates } from '@elastic/esql-definitions/time-series-aggregates';
import { promqlFunctionDefinitions } from '@elastic/esql-definitions/promql-functions';
import { promqlOperatorDefinitions } from '@elastic/esql-definitions/promql-operators';
ESQQL 剖面响应计划作为参考JSON Schema发布 文件草案7:
import { esqlProfileResponseSchema } from '@elastic/esql-definitions/profile-schema';
源代码与本地代码同步 $ref 指针
完好无损 软件包生成扩展了这些参考文献,使消费者能够通过
esqlProfileResponseSchema 直接到 JSON Schema 验证器和转换器
而不解决提法.
timeSeriesAggregates 将每个字段类型映射到 ESQQL 内含的集合
在时间序列中插入空列 STATS类型
外聚物见. counter_double 变成 double, (中文(简体) ), counter_integer
变成 integer, (中文(简体) ), counter_long 变成 long,以及 text 变成
keyword。其他条目(double, (中文(简体) ), keyword, (中文(简体) ), exponential_histogram, (中文(简体) ),
...)保持同类型.
timeSeriesAggregates.counter_double;
// { function: 'last_over_time', returnType: 'double' }
文档(描述、实例、注释、参数)被分割 按定义名称键入并行的文档模块:
import { functionDocs } from '@elastic/esql-definitions/function-docs';
import { operatorDocs } from '@elastic/esql-definitions/operator-docs';
import { promqlFunctionDocs } from '@elastic/esql-definitions/promql-function-docs';
import { promqlOperatorDocs } from '@elastic/esql-definitions/promql-operator-docs';
functionDocs.bucket.description;
functionDocs.bucket.params?.field; // ES|QL param docs live here, not in signatures
一个非对称性可以知道: ESQQL 参数描述在跨度上是相同的
所有签名的定义,所以他们生活在 docs.params 键
参数名称。 promQL 参数描述每个签名(例如. lhs
是"即时向量" 在一个超载 和一个"斯卡拉".
定义如何同步
elasticsearch/——机器可读语言定义 为Kibana出版的弹性搜索出版物docs/reference/query-languages/{esql,promql}/kibana/generated/输入elasticsearch由语法同步 CI 任务重播 (单位:千美元).buildkite/scripts/esql_grammar_sync.sh) (中文(简体) ).src/generated/– 类型脚本模块生成自elasticsearch/以scripts/generate.ts。 。 。 .pnpm --filter @elastic/esql-definitions generatesrc/definition_types.ts活生生的JSON的手写TypeScript形状, 用于代码脚本,并从主条目导出.
注释:同步 commands/ 数据不涵盖所有命令(例如. FROM, (中文(简体) ),
ROW, (中文(简体) ), JOIN 上游缺少变体,所以手持
commandsNames 财务报告和审定财务报表 functionNames 名单仍然是姓名的真相来源
列表.