如何解决Elasticsearch中的脚本
我对弹性搜索中的脚本有两个问题,希望有人能帮助我。我需要将文档中的几个参数添加到_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 举报,一经查实,本站将立刻删除。