在Elasticsearch中,我想知道(子)聚合中使用的脚本范围内可用的变量。
我已经阅读了scripting和text scoring in scripts上的资源以及大多数聚合类型的文档,但无法根据具体情况找到可以使用的内容的全面参考。
根据我的收集情况,聚合中的大多数脚本都是每次点击,并且可以访问以下范围:
doc['field_name'].*
_source
_fields['field_name']
_score
_index.*
_index['field_name'].*
_index['field_name']['term'].*
Scripted Metric 聚合还会在每个分片&中显示_agg
变量。 每次点击脚本(init,地图和组合脚本)以及协调节点级别的<{1}}变量(简化脚本)。
当然,map脚本还可以访问上面定义的每个其他每个命中变量。
我找不到文档,指出{-1}}是否在每个分片脚本中可用,但它似乎是逻辑的。
此外,scripted_metric是我可以找到的分片或协调节点级别的脚本的唯一情况。
Signicant Terms 聚合有一个特殊情况,即运行评分脚本 per-bucket ,范围内包含以下变量:
_aggs
,_index*
,_subset_freq
,_superset_freq
然而,它似乎无法访问其他依赖于桶的内容,例如桶密钥(术语)或单值度量子聚合,这是一个很小的因为它非常有用(至少,我可以找不到任何关于如何访问这种依赖于桶的信息的文档。)
条款聚合还有一个特殊情况的值脚本(当定义参数_subset_size
和_superset_size
时),它只能访问{{1}变量。
此处总结的信息是否准确/完整?