我正在使用基本的Elasticsearch排序脚本按质量对文档进行排序。由于我们将质量存储为“低”,“中”和“高”,因此它们不能进行基本排序,因为它们的字母顺序与它们所感知的枚举顺序不同。
这是我正在使用的脚本:
"sort":{
"_script":{
"script":"factor[doc['quality'].value]",
"type":"number",
"params":{
"factor": {
"high": 2,
"med": 1,
"low": 0
}
},
"order":"asc"
}
如果我将doc['quality'].value
替换为'high'
,它的工作正常,所以似乎接受doc值作为对象的键是一个问题。
非常感谢任何有关其原因的见解。
我得到的错误如下:
ScriptSortParser$2@1135e7f9>]: Query Failed [Failed to execute main query]]; nested: NullPointerException; }]"