我有多个内核(使用不同的语言),它们共享相同的结构/模式。我向每个核心发送相同的查询并返回结果,然后将结果保存到一个名为" results“的新核心中。我有一个自定义的Q解析器插件,可以保存分数,这样结果核心就可以根据其他核心的分数进行排序。
比较来自不同集合的分数有意义吗?如果我通过除以最大分数来归一化0和1之间的分数,这是否会使单个核心的分数对于特定的查询具有可比性?
让分数标准化和可比性的最好方法是什么?
显然,join命令为每个结果分配了相同的分数。
谢谢。
发布于 2017-09-09 17:39:21
你是否可以比较分数取决于你的排名类型。如果你基本上只有布尔字段匹配和一些没有任何内容相似性的字段权重,那么你可以比较核心之间的分数。
但是如果你使用一些内容相似度,比如默认的相似度,那么它就会变得更多工作,你不能再比较一个核心的分数。这取决于你有多少数据,以及你索引的文档是否在核心上分布得很好。如果它是均匀分布的,你也可以比较分数。但是,您需要确保每个核心都有足够的数据索引,以便这些数据在各个核心之间具有代表性和相似性。
如果不是这样,您必须查找给定查询条件的每个核心的反向文档频率(IDF)。并使用所有IDF计算新的全局IDF,并使用该IDF重新计算文档分数。然后你就可以比较了。
https://stackoverflow.com/questions/46118279
复制相似问题