我正在尝试查询和比较两个MLT查询分数,但根据我在这里阅读的内容有点困惑 https://www.elastic.co/guide/en/elasticsearch/guide/current/practical-scoring-function.html
即使查询规范的意图是从中获取结果 不同的查询可比,它不能很好地工作。唯一的 相关性的目的_score是对当前结果进行排序 以正确的顺序查询。 您不应该尝试比较 来自不同查询的相关性分数。
如果我运行MLT查询并且文档“A”类似于文档“B”且分数为0.4,反之, 运行MLT查询文档“B”类似于文档“A”,其得分为2.4。
我希望根据MLT中匹配的代币得分相同,但事实并非如此。
另外, 如果我运行MLT查询并且文档'A'类似于文档'B'并且分数是0.6和 运行另一个MLT查询文档“C”类似于文档“A”,其得分为4.7。
所以我的问题是:
谢谢, - 菲尔
答案 0 :(得分:2)
1
不,它没有。正如您在问题中所述,您不应该比较不同查询的分数。如果要获得与C最相似的文档的有意义结果,则应为文档C生成MLT查询,并使用该文档进行搜索。
由于MLT查询的工作方式,这是双重的。 MLT尝试生成一个有趣的术语列表,以便从您的文档中搜索(基于索引中的术语库),并搜索它们。从文档A生成的术语集可能与从文档B生成的术语集大不相同,因此当从B中查找A时,得分差异很大,反之亦然,即使文档本身显然具有相同的重叠。
2
别。听听文档。分数仅旨在对文档与生成它们的查询的匹配程度进行排名。在该上下文之外使用它们没有意义。重新思考你想要完成的事情。