全文搜索 - 排名的有用性

时间:2010-05-22 18:59:40

标签: sql-server tsql full-text-search

RANK列表示行与选择条件的匹配程度。

SELECT *   
FROM CONTAINSTABLE ( someTable, *, 'surf OR life' ) AS ct 
   INNER JOIN someTable ON
     ct.[KEY] = someTable.i

假设我们运行上面的查询,我希望查询返回的两行(一行包含字符串life,另一行包含字符串surf)将排名相同,但它们不是'牛逼!

a)因此,RANK列是否仅对比较包含相同单词/短语的行的RANK值?也就是说,如果上面的查询返回了两行,其中行A包含5个单词surf,而行B包含6个单词life,则我们不能真正依赖RANK值告诉我们哪一行是更好的匹配(因为排B可以排名更低,即使它更符合选择标准)?

b)我假设两行都包含一个单词surf将始终具有相等的RANK值,无论其中一行是否包含一个字符串中的1000个字符,而其他行只包含10个字符? / p>

感谢名单

1 个答案:

答案 0 :(得分:0)

查看2008年图书在线 搜索查询结果如何排名 ,了解排名及其原因(详见公式)。

您可以对数据进行更多测试:

'生活或冲浪'

查看CONTAINS语法以获取更多想法,或权衡您关注的内容。

你的答案:

a)RANK公式比你建议的要复杂得多。

b)RANK公式另有建议。