ElaticSearch7.6 执行脚本语言

本文介绍了一种数据计划的实现方式,通过POST请求设置不同的脚本字段进行数学运算,包括加减乘除、乘方、开方、平方根等操作。同时,展示了如何从数据库中提取特定字段如年龄和健康状况,并利用这些字段进行复杂的数据计算。
摘要由CSDN通过智能技术生成

1、数据计划

POST
{
  "size": 1,             
  "script_fields": {
    "sum": {            
      "script": {
        "lang": "expression", 
        "source": "2 + 3"        
      }
    },
    
    "sub":{                
      "script":{
        "lang": "expression",
        "source": "10 - 2"
      }
    },
    "mul":{                
      "script":{
        "lang": "expression",
        "source": "3 * 8"
        
      }
    },
    "div":{                
      "script":{
        "lang": "expression",
        "source": "100 / 3"
        
      }
    },
    
    "mod":{                
      "script":{
        "lang": "expression",
        "source": "100 % 3"
        
      }
    },
    
    "pow":{                
      "script":{
        "lang": "expression",
        "source": "pow(3,3)" //乘方
        
      }
    },
    "pow/1":{                
      "script":{
        "lang": "expression",
        "source": "pow(27,1/3)"  //开方
        
      }
    },

    "sqrt":{            
      "script":{
        "lang": "expression",
        "source": "sqrt(100)" //平方根
        
      }
    },
    "ln":{                
      "script":{
        "lang": "expression",
        "source": "ln(2)+ln(5)"
        
      }
    }
  }
}

2、从表中取字段参数计算,例如获取表中的age、health两个字段参与计算

POST

{
  "from": 0,
  "size": 5,
  "query": {   //查询条件
    "match": {
      "age": 11
    }
  },
  "_source": {  //返回字段 age,health
    "includes": [
      "age",
      "health"
    ]
  },
  "script_fields": {  //脚本计算
    "my_num": {
      "script": {
        "lang": "expression",
        "source": "doc['age'] / (doc['age']+doc['health'])"
      }
    }
  }
}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值