elasticsearch聚合中的脚本范围

Sha*_*cko 7 elasticsearch

在Elasticsearch中,我想知道(子)聚合中使用的脚本范围内有哪些变量可用.

我已经阅读了脚本中的脚本文本评分资源以及大多数聚合类型的文档,但是根据具体情况找不到可以使用的内容的全面参考.

从我可以收集的内容来看,聚合中的大多数脚本都是按击中运行的,并且可以访问以下范围:

  • 文件字段,通过 doc['field_name'].*
  • 从索引解析的文档,通过 _source
  • 存储的字段,通过 _fields['field_name']
  • 文件得分,通过 _score
  • 碎片统计,通过 _index.*
  • 每个分片字段统计,通过 _index['field_name'].*
  • 每个分片术语统计,通过 _index['field_name']['term'].*

脚本度量聚集也公开了一个_agg在可变的每碎片&每次命中的脚本(INIT,地图&结合脚本)和一个_aggs在可变协调节点电平(降低脚本).当然,map脚本还可以访问上面定义的每个其他每个命中变量.我找不到指示是否_index*在每个分片脚本中可用的文档,但它似乎是逻辑的.此外,scripted_metric是我可以找到的分片或协调节点级别的脚本的唯一情况.

显着性条款聚集具有运行脚本得分的特殊情况,每个桶,在范围以下变量:

  • _subset_freq,
  • _superset_freq,
  • _subset_size,
  • _superset_size

但是它似乎没有访问其他依赖于桶的东西,比如桶密钥(term)或单值度量子聚合,这是一个很小的因为它非常有用(至少,我找不到任何东西)有关如何访问此类存储桶相关信息的文档).

条款聚合也具有值脚本(两个参数时的特殊情况field,并script定义),其只能访问一个_value变量.

这里总结的信息是准确/完整的吗?