ElasricSearch两个字段相加报错

简介: ElasricSearch两个字段相加报错

问题背景:

ES两个字段相加的查询报错:unsupported_operation_exception

{
"error":{
"root_cause":[
            {
"type":"unsupported_operation_exception",
"reason":"scripts of type [inline], operation [update] and lang [expression] are not supported"            }
        ],
"type":"unsupported_operation_exception",
"reason":"scripts of type [inline], operation [update] and lang [expression] are not supported"    },
"status":500}


问题原因:

脚本语法问题


解决方案

1、创建索引

PUT test3
{
  "mappings" : {
      "properties" : {
        "a1" : {
          "type" : "long"
        },
        "b1" : {
          "type" : "long"
        },
        "date1" : {
          "type" : "date"
        }
      }
    }
}


2、put数据

POST test3/_doc/001
{
 "a1":22,"b1":33
}


3、查询

GET test3/_search
{
    "from":0,
    "size":1,
    "query":{
        "match":{
            "a1":"22"
        }
    },
    "sort":{
        "a1":"desc"
    },
    "_source":{
        "includes":[
            "a1",
            "b1"
        ]
    },
    "script_fields":{
        "c1":{
            "script":{
                "lang":"expression",
                "source":"doc['a1'] + doc['b1']"
            }
        }
    }
}


适用范围

检索分析服务Elasticsearch版

相关文章
|
4月前
|
C语言
用栈实现将一个十进制数值转换成八进制数值。即用该十进制数值除以8,并保留其余数;重复此操作,直到该十进制数值为0为止。最后将所有的余数反向输出就是所对应的八进制数值
这篇文章展示了如何使用栈(包括顺序栈和链栈)实现将十进制数值转换成八进制数值的方法,通过C语言编程演示了两种栈的实现方式和使用场景。
用栈实现将一个十进制数值转换成八进制数值。即用该十进制数值除以8,并保留其余数;重复此操作,直到该十进制数值为0为止。最后将所有的余数反向输出就是所对应的八进制数值
|
SQL
解决SQLServerException: 转换 varchar 值 '12345678901' 时溢出了整数列的bug
解决SQLServerException: 转换 varchar 值 '12345678901' 时溢出了整数列的bug
349 0
|
存储 算法 JavaScript
设计并实现一个函数, 功能为给定一个存储为随机整数的数组,从中删除所有值为i的整数
设计并实现一个函数, 功能为给定一个存储为随机整数的数组,从中删除所有值为i的整数
|
PHP
thinkphp where两个字段相加值
thinkphp where两个字段相加值
178 0
统计二进制中1的个数,,,写一个函数,返回参数二进制中1的个数 写一个代码判断一个数字是不是2的n次方
统计二进制中1的个数,,,写一个函数,返回参数二进制中1的个数 写一个代码判断一个数字是不是2的n次方
130 0
成功解决在excel表中通过数学函数转换后,接着去掉公式转为不再随着变化的数值
成功解决在excel表中通过数学函数转换后,接着去掉公式转为不再随着变化的数值
成功解决在excel表中通过数学函数转换后,接着去掉公式转为不再随着变化的数值
随机生成一个short型一维数组,从控制台输入一个数值,遍历数组查找,如果找到了,打印出该数在数组中的位置,如果没有查到,请将该数值插入并形成新的数组(要求降序)
随机生成一个short型一维数组,从控制台输入一个数值,遍历数组查找,如果找到了,打印出该数在数组中的位置,如果没有查到,请将该数值插入并形成新的数组(要求降序)
158 0
设以下变量均为int类型,则值不等于7的表达式是
设以下变量均为int类型,则值不等于7的表达式是
649 0
闭式解(解析解)与 开式解(数值解)
闭式解(解析解)与 开式解(数值解)
721 0