elasticsearch “继续获取此错误”;未找到动态方法[java.util.HashMap,add/1]”;在kibana控制台中
我是elasticsearch stack的新手。。。每当我试图在Kibana开发工具控制台中执行下面的查询时,总是会遇到下面提到的错误elasticsearch “继续获取此错误”;未找到动态方法[java.util.HashMap,add/1]”;在kibana控制台中,elasticsearch,kibana,elastic-stack,elasticsearch,Kibana,Elastic Stack,我是elasticsearch stack的新手。。。每当我试图在Kibana开发工具控制台中执行下面的查询时,总是会遇到下面提到的错误 在Kibana控制台中执行的查询 执行上述查询时,继续获取此错误\/^^ 样本数据 使用的版本 基巴纳:7.9.3 弹性搜索:7.9.3 提前感谢:)由于地址是散列,因此不能使用add()方法(用于数组、列表等集合)。相反,您需要先将地址转换为列表,然后调用add(): 由于Address是散列,因此不能使用add()方法(用于数组、列表等集合)。
- 在Kibana控制台中执行的查询
\/
^^
- 样本数据
- 使用的版本
提前感谢:)由于
地址
是散列,因此不能使用add()
方法(用于数组、列表等集合)。相反,您需要先将地址
转换为列表,然后调用add()
:
由于
Address
是散列,因此不能使用add()
方法(用于数组、列表等集合)。相反,您需要先将地址
转换为列表,然后调用add()
:
谢谢,它成功了。但是它正在用以前的值替换新值,您想做什么呢?希望同时添加新值和以前的值好的,我已经修复了逻辑,谢谢它工作正常。但是它是用以前的值替换新值,你想做什么呢?想同时添加新值和以前的值好的,我已经修正了逻辑
POST employees-details/_update_by_query
{
"query": {
"match": {
"EmpName": "Arvind"
}
},
"script": {
"source": "ctx._source.Address.add(params.tag)",
"lang": "painless",
"params": {
"tag":{
"AddressID":144,
"AddressNumber":458
}
}
}
}
"caused_by" : {
"type" : "illegal_argument_exception",
"reason" : "dynamic method [java.util.HashMap, add/1] not found"
}
[
{
"_index" : "employees-details",
"_type" : "_doc",
"_id" : "101",
"_score" : 1.0,
"_source" : {
"EmpUserID" : 101,
"Gender" : "Male",
"EmpName" : "John",
"Age" : 35
}
},
{
"_index" : "employees-details",
"_type" : "_doc",
"_id" : "106",
"_score" : 1.0,
"_source" : {
"EmpUserID" : 106,
"Address" : {
"AddressNumber" : 201,
"AddressID" : 200
},
"Gender" : "Male",
"EmpName" : "Arvind",
"Age" : 30
}
}
]
POST employees-details/_update_by_query
{
"query": {
"match": {
"EmpName": "Arvind"
}
},
"script": {
"source": "if (!(ctx._source.Address instanceof Collection)) {ctx._source.Address = [ctx._source.Address];} ctx._source.Address.add(params.tag)",
"lang": "painless",
"params": {
"tag":{
"AddressID":144,
"AddressNumber":458
}
}
}
}