Bucket Script Aggregationedit Warning This functionality is experimental and may be changed or removed completely in a future release. Elastic will take a best effort approach to fix any issues, but experimental features are not subject to the support SLA of official GA features.
A parent pipeline aggregation which executes a script which can perform per bucket computations on specified metrics in the parent multi-bucket aggregation. The specified metric must be numeric and the script must return a numeric value.
Syntaxedit A bucket_script aggregation looks like this in isolation:
{ "bucket_script": { "buckets_path": { "my_var1": "the_sum", "my_var2": "the_value_count" }, "script": "my_var1 / my_var2" } }Here, my_var1 is the name of the variable for this buckets path to use in the script, the_sum is the path to the metrics to use for that variable.
Table 11. bucket_script Parameters Parameter Name
DescriptionRequiredDefault ValuescriptThe script to run for this aggregation. The script can be inline, file or indexed. (see Scripting for more details)Requiredbuckets_pathA map of script variables and their associated path to the buckets we wish to use for the variable (see the section called “buckets_path Syntaxedit” for more details)Requiredgap_policyThe policy to apply when gaps are found in the data (see the section called “Dealing with gaps in the dataedit” for more details)Optional, defaults to skipformatformat to apply to the output value of this aggregationOptional, defaults to nullformat参数的值:
"hit/traffic" : { "bucket_script" : { "script" : { "inline" : "hit/traffic" }, "format" : "#.##", "buckets_path" : { "traffic" : "_count", "hit" : "hit>_count" } } }还有其他的可取值,可参考:
importjava.text.DecimalFormat; publicclassTestNumberFormat{ publicstaticvoidmain(String[]args){ doublepi=3.1415927; //圆周率 //取一位整数 System.out.println(newDecimalFormat("0").format(pi)); //3 //取一位整数和两位小数 System.out.println(newDecimalFormat("0.00").format(pi)); //3.14 //取两位整数和三位小数,整数不足部分以0填补。 System.out.println(new DecimalFormat("00.000").format(pi));// 03.142 //取所有整数部分 System.out.println(newDecimalFormat("#").format(pi)); //3 //以百分比方式计数,并取两位小数 System.out.println(new DecimalFormat("#.##%").format(pi)); //314.16% longc=299792458; //光速 //显示为科学计数法,并取五位小数 System.out.println(newDecimalFormat("#.#####E0").format(c)); //2.99792E8 //显示为两位整数的科学计数法,并取四位小数 System.out.println(newDecimalFormat("00.####E0").format(c)); //29.9792E7 //每三位以逗号进行分隔。 System.out.println(newDecimalFormat(",###").format(c)); //299,792,458 //将格式嵌入文本 System.out.println(newDecimalFormat("光速大小为每秒,###米。").format(c)); } }