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版

相关文章
|
5月前
|
C语言
用栈实现将一个十进制数值转换成八进制数值。即用该十进制数值除以8,并保留其余数;重复此操作,直到该十进制数值为0为止。最后将所有的余数反向输出就是所对应的八进制数值
这篇文章展示了如何使用栈(包括顺序栈和链栈)实现将十进制数值转换成八进制数值的方法,通过C语言编程演示了两种栈的实现方式和使用场景。
用栈实现将一个十进制数值转换成八进制数值。即用该十进制数值除以8,并保留其余数;重复此操作,直到该十进制数值为0为止。最后将所有的余数反向输出就是所对应的八进制数值
练习>>在二维数组中找出最大数,并输出行,列
练习>>在二维数组中找出最大数,并输出行,列
120 0
|
存储 算法 C语言
【前缀和】1829. 每个查询的最大异或值
【前缀和】1829. 每个查询的最大异或值
109 0
|
SQL
解决SQLServerException: 转换 varchar 值 '12345678901' 时溢出了整数列的bug
解决SQLServerException: 转换 varchar 值 '12345678901' 时溢出了整数列的bug
387 0
|
存储 算法 JavaScript
设计并实现一个函数, 功能为给定一个存储为随机整数的数组,从中删除所有值为i的整数
设计并实现一个函数, 功能为给定一个存储为随机整数的数组,从中删除所有值为i的整数
定义一个长度为10的整型数组,循环输入10个整数。 然后将输入一个整数,查找此整数,找到后输出下标,没找到给出提示。
定义一个长度为10的整型数组,循环输入10个整数。 然后将输入一个整数,查找此整数,找到后输出下标,没找到给出提示。
228 0
|
自然语言处理 C语言 C++
输入两个整数,求它们按由从大到小的顺序输出。要求使用变量的引用。
输入两个整数,求它们按由从大到小的顺序输出。要求使用变量的引用。
|
PHP
thinkphp where两个字段相加值
thinkphp where两个字段相加值
183 0
多组输入,一个整数(3~20),表示数字三角形边的长度,即数字的数量,也表示输出行数。
多组输入,一个整数(3~20),表示数字三角形边的长度,即数字的数量,也表示输出行数。
153 0
多组输入,一个整数(3~20),表示数字三角形边的长度,即数字的数量,也表示输出行数。