Elasticsearch 之 script 参数

        在使用Elasticsearch(es)进行DSL查询时,免不了有字段间进行比较、四则运算等一些简单的查询过程中的计算需求,那么我们就需要用到es查询语法中的script参数。通用过用script参数,我们就可以进行一些基本的比较和其他的运算。


        举两个示例:

        1、在多层分组(类似于MySQL、pandas中的多字段 groupby 功能)聚合结果中,我们需要计算subterm_count占term_count的比例,那么我们就需要用到script进行计算:

    

代码示图

注:这里需要先定义两个参数,利用两个参数间接计算比例值perc。参数定义需要指定参数路径,

        param_all:最外层term,直接All_count;

        param_miss:Miss_count term下面是subterm ,所以是Miss_count>miss_count;

        计算结果 perc =  "params.miss/params.all"。


        2、通过比较或者计算两个字段值,来过滤符合条件的数据时,那么我们就需要用到script:


request跟time-upstream_response_tiime比较

        注:这里实现的是筛选出,request跟time-upstream_response_tiime差值大于5的数据。这里需要注意的是字段内容Type,需要用.value的形式进行转化。

                

你可能感兴趣的:(Elasticsearch 之 script 参数)