elasticsearch中的脚本

67up9zun  于 2021-06-15  发布在  ElasticSearch
关注(0)|答案(0)|浏览(211)

我有几个关于elasticsearch脚本的问题,希望有人能帮我。我需要将文档中的几个参数添加到 _score 按总值排序。首先,我将描述我拥有的数据以及需要添加的数据: rating -从1到9的数字, duration_bucket 是从0到2的数字, rating_adj [ { text -如果传递的参数与此值匹配,则结果将更改为下一个值。 adj -将更改结果的数字。
}]
嗯,那个 score 通常,该值的范围为1到4。
起初,我只是按以下顺序排序: score rating duration_bucket 但结果略有不同。因此,编写了一个小脚本来添加所有这些值。

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;

第一个问题。我试过两种选择。
通过 function score 已经按这个分数排序了。
直接通过 script sort 我没有注意到性能上的差异,这些方法是否有显著差异?
第二个问题。使用此脚本时,处理器将完全加载,这与通常的排序不同。有没有什么方法可以优化脚本,或者都是关于硬件的?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题