我尝试在一个表中但在不同的字段中找到几个单词。 为什么带有一个相应单词的记录的排名高于带有两个单词的记录? 例子:
记录1
标题: Eddie Murphy
描述:美国脱口秀喜剧演员,演员,作家,歌手,导演和音乐家。
记录2
标题:汤姆克鲁斯
描述:美国电影演员和制片人。他赢得了三项金球奖。
SELECT * FROM FREETEXTTABLE(SubjectContent, (Title, Description), 'tom actor')
尽管记录2包含两个单词('tom'和'actor')而记录1只包含一个单词('actor'),返回Recrod 1,等级61,记录2等级47。因此,用户在正确的记录之前会收到大量不合适的记录。
虽然如果我设置搜索参数'tom cruise actor',请求会返回高排名。
我的全文索引:
CREATE FULLTEXT INDEX ON SubjectContent(Title, [Description])
KEY INDEX PK_SubjectContent
ON FullTextSearch;
我试图更改属性'重音敏感'和全文目录的其他属性,但未成功。谢谢你的帮助。
答案 0 :(得分:2)
查看2个字符串,我看到第二个字符串是从全文的角度来看更大的文档。这是因为你在那里的句子分隔符。因此,如果将这些字符串传递给dm_fts_parser,您将看到第一个字符串的最大出现次数为11,第二个字符串为21.全文将此文档长度标准化为16,32,128,256等的存储桶。所以您的第一个文档属于第一个存储桶,第二个属于第二个存储桶。因此,第一个具有更高的等级(与文档的长度成反比)。所有这些的参考是http://msdn.microsoft.com/en-us/library/cc879245.aspx 谢谢 Venkat