我正在开发一个应用程序,允许用户查找产品引用,按关键字搜索(使用SQL 2008的全文索引表的FREETEXTTABLE功能)。这些参考是从两个可靠的不同数据库中提取的。但是,当我按等级排序时,它们不会给出相同的结果。我使用如下的请求:
Select xxx FROM Table as P_TBL
INNER JOIN FREETEXTTABLE(Table, column,'key words',LANGUAGE 1033) AS F_TBL
ON P_TB.id = F_TBL.[Key]
ORDER BY RANK
现在我想根据他们对BOTH请求的排名找到最相关的参考。
我想知道添加排名是否更好:例如第一个表的排名为115,第二个表的排名为95,总排名为210。或者如果最好将它们相乘(100,100参考将成为10 000 ref),因此105,95参考将会更少,因为它的结果不尽相同,即使它具有相同的添加分数。
非常感谢任何提高这种情况的结果相关性的建议
答案 0 :(得分:0)
我不是专家,但我会去求和,因为FREETEXTTABLE可以在一个表中返回0,所以在这种情况下,乘法不会反映现实。我在OKAPI BM25 ranking formula中看到了一个类比,其中一般排名是通过对查询的各个术语进行排名并对它们求和来计算的。