有一个存储过程在两个表上使用FREETEXTTABLE两次,然后合并结果并返回前50个。

问题是,如果我搜索“布鲁斯特妇女”,结果会返回“前任的忏悔之声”。表A中排名143,第二名“Brewster Place女性”排名第一。表B中的等级为102。

这是因为伯爵? (表A返回结果总计为2399.表B返回结果总计为3445.)

有帮助吗?

解决方案

答案简短:

  

Freetext排名基于OKAPI   BM25排名公式。每个词都在   查询排名,值是   求和。 Freetext查询将添加   通过屈折来查询的单词   一代(词干的形式)   原始查询条款);这些话是   作为单独的条款处理,没有   特殊的权重或与...的关系   他们所说的话   产生。从中生成的同义词   同义词库功能被视为   单独的,同等加权的术语。

当然,可以在微软的网站上找到更长,更复杂的答案。对于高等数学,请点击此处

其他提示

1)噪音文件仅限于几个字符,这意味着“of of”一词。现在认为重要。

2)两个表的结果(计数)确实很重要,因为较小的表最有可能被赋予更好的权重值。这会使得较小的表中的等级偏高。

Josef与MSDN的链接很好地解决了它如何计算排名值。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top