gpt4 book ai didi

Elasticsearch |将具有相同分数的结果随机化

转载 作者:行者123 更新时间:2023-12-05 06:20:39 26 4
gpt4 key购买 nike

在 ElasticSearch 中,是否可以在不丢失分页的情况下随机排列具有相同分数的搜索结果的顺序?

我正在托管一个包含数千名求职者的数据库。当一家公司正在搜索特定技能(或技能组合)时,它总是相同的顺序(因此搜索结果顶部的候选人具有巨大的优势)

搜索查询示例:

let params = {
index: 'candidates',
type: 'candidate',
explain: true,
size: size,
from: from,
body: {
_source: {
includes: ['firstName', 'middleName', 'lastName']
},
query: {
bool: {
must: [/* Left out */],
should: [/* Left out */],
}
}
}
};

最佳答案

Henry 的回答很好,但我觉得做起来更容易:

        function_score: {
query: {
...
},
random_score: {
seed: 12345678910,
field: '_seq_no',
weight: 0.0001
},
boost_mode: 'sum'

因此无需提高原始分数,只需降低随机分数的权重,使其贡献很小(但仍足以打破平局)。

不过,我确实不喜欢这种打破平局的方法,因为即使您只对分数贡献了一点点,您仍然可以在分数不同但分数非常接近的结果之间更改结果的顺序。这就是我打开 this feature request 的原因。

关于 Elasticsearch |将具有相同分数的结果随机化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60353980/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com