我在elastic search上做了一个查询A,得到前50个结果。我还创建了一个查询B,其中包含查询A的30%的术语。查询A的每个结果都有一个相似度分数scoreA
,并且B的每个结果都有scoreB
。我试图实现的是将A和B的结果结合起来,以提高每个单独查询的平均精度。我发现的一种方法是根据这个公式对结果进行重新排序:
SIMnew = λ*scoreA + (1-λ)*scoreB
其中λ
是我应该调优的超参数。我注意到这个公式非常类似于在弹性搜索(https://www.elastic.co/blog/language-models-in-elasticsearch)中实现的Jelineck-Mercer平滑。
有没有使用Elastic Search进行这种重新排序的默认方法,或者唯一的方法是自定义实现?
(考虑到我搜索了很多关于这个公式的信息,但没有找到有用的东西,如果somenone能给我一个关于它是如何工作以及为什么工作的直觉,那就太好了)
https://stackoverflow.com/questions/56492145
复制相似问题