问题描述
我对弹性搜索中的脚本有两个问题,希望有人能帮助我。我需要将文档中的几个参数添加到_score
并按总值排序。首先,我将描述我拥有的和需要添加的数据:
-
rating
-1到9之间的数字, -
duration_bucket
是从0到2的数字。 -
rating_adj
[ {-
text
-文本,如果传递的参数与此值匹配,则结果将更改为下一个值。 -
adj
-将更改结果的数字。
-
}]
-
score
本身,通常此值的范围是1到4。
最初,我只是按以下顺序排序:
但这给出了稍微不同的结果。 因此,编写了一个小脚本来添加所有这些值。
def found = null;
if (params.text != null) {
found = params._source['rating_adj'].find(item -> item.text == params.text);
}
def res = _score + params._source['duration_bucket'] + params._source['rating'];
if (found != null) {
return res + found.adj
}
return res;
第一个问题。我尝试了两种选择。
第二个问题。使用此脚本时,与通常的排序相反,处理器已满载。有什么方法可以优化脚本,还是有关硬件的?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)