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版

相关文章
|
1月前
读取7个数(1—50)的整数值
【10月更文挑战第10天】读取7个数(1—50)的整数值。
29 4
|
3月前
|
SQL 关系型数据库 MySQL
mysql不等于<>取特定值反向条件的时候字段有null值或空值读取不到数据
对于数据库开发的专业人士来说,理解NULL的特性并知道如何正确地在查询中处理它们是非常重要的。以上所介绍的技巧和实例可以帮助你更精准地执行数据库查询,并确保数据的完整性和准确性。在编写代码和设计数据库结构时,牢记这些细节将有助于你避免许多常见的错误,提高数据库应用的质量与性能。
121 0
|
SQL
解决SQLServerException: 转换 varchar 值 '12345678901' 时溢出了整数列的bug
解决SQLServerException: 转换 varchar 值 '12345678901' 时溢出了整数列的bug
328 0
不用任何比较运算符找出两个整数中的较大的值
不用任何比较运算符找出两个整数中的较大的值
80 0
|
存储 算法 JavaScript
设计并实现一个函数, 功能为给定一个存储为随机整数的数组,从中删除所有值为i的整数
设计并实现一个函数, 功能为给定一个存储为随机整数的数组,从中删除所有值为i的整数
|
自然语言处理 C语言 C++
输入两个整数,求它们按由从大到小的顺序输出。要求使用变量的引用。
输入两个整数,求它们按由从大到小的顺序输出。要求使用变量的引用。
|
PHP
thinkphp where两个字段相加值
thinkphp where两个字段相加值
174 0
统计二进制中1的个数,,,写一个函数,返回参数二进制中1的个数 写一个代码判断一个数字是不是2的n次方
统计二进制中1的个数,,,写一个函数,返回参数二进制中1的个数 写一个代码判断一个数字是不是2的n次方
128 0