在ES版本5.x中,我使用了这个查询并运行良好。
"bool": {
"must": [
{
"script": {
"script": {
"inline": "params['_source']['my_field'] != null",
"lang": "painless"
},
但是在ES版本6.2中,出现以下错误消息时出现错误。
"error": {
"root_cause": [
{
"type": "script_exception",
"reason": "runtime error",
"script_stack": [
"params['_source']['my_field'] != null"
,
" ^---- HERE"
],
"script": "params['_source']['my_field'] != null",
"lang": "painless"
}
],
params中没有'_source'数据。因为下面的查询没有返回数据。
"inline": "params['_source'] != null",
我该如何处理此错误?
答案 0 :(得分:0)
请尝试这样的事情:
{
"query" : {
"bool": {
"must": [
{
"script": {
"script": {
"source": "(doc.containsKey('my_field') ? doc['my_field'].value : null) != null",
"lang": "painless"
}
}
}
]
}
}
}
它适用于我的6.2.2版本。