FREETEXTTABLE 为什么或如何给出比其他人更高的排名值
有一个存储过程在两个表上使用 FREETEXTTABLE 两次,然后合并结果并返回前 50 个。
问题是,如果我搜索“Women of Brewster”,结果将返回“Confession of an ex doofus motha” A表中排名第143位,B表中排名第二的“布鲁斯特广场女性”排名第102位。
这是因为计数的原因吗? (表A返回结果总计为2399。表B返回结果总计为3445。)
There is a store procedure that uses FREETEXTTABLE twice on two tables and then merges the results and returns the top 50.
The problem is if I do a search on "Women of Brewster", the results returns "Confession of an ex doofus motha" with a rank of 143 from table A and second "Women of Brewster Place" with a rank of 102 from table B.
Is this because of the count? (Table A return results total is 2399. Table B return results total is 3445.)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
简短的回答:
当然,可以在微软的网站上找到更长、更复杂的答案。 对于高等数学,单击此处。
The short answer:
The much longer, and far more complicated answer can be found on Microsoft's site, of course. For advanced mathematics, click here.
1) 噪声文件仅限于几个字符,这意味着“of”一词现在被认为很重要。
2) 两个表的结果(计数)确实很重要,因为较小的表很可能会被赋予更好的权重值。 这将使较小表中的排名变得更高。
Josef 的 MSDN 链接很好地说明了它如何计算排名值。
1) The noise file was limited to a few characters, meaning that the word "of" is now consider important.
2) The two tables results (count) do matter, since the smaller table will most likely be given a better weight value. This will skew the rank to be higher in a smaller table.
Josef's link to MSDN was great at figuring out how it computes the rank value.
使用此 INNER JOIN 方法可以按排序顺序获取相关结果。
参考: Azure SQL FREETEXABLE
Use this INNER JOIN approach to get the relevant results in sorted order.
Reference: Azure SQL FREETEXABLE