1

我试图在一张表中找到几个单词,但在不同的字段中。为什么一个对应词的记录的排名高于两个对应的记录?这个例子:

记录 1

作品名:埃迪墨菲

描述:美国单口相声演员、演员、作家、歌手、导演和音乐家。

记录 2

书名:汤姆克鲁斯

简介:美国电影演员和制片人。他曾获得三项金球奖。

SELECT * FROM FREETEXTTABLE(SubjectContent, (Title, Description), 'tom actor')

尽管记录 2 包含两个单词('tom' 和 'actor')并且记录 1 仅包含一个单词('actor'),但返回排名为 61 的记录 1 和排名为 47 的记录 2。因此,用户在正确记录之前收到大量不正确的记录。

虽然如果我设置搜索参数“汤姆巡航演员”,请求会返回高排名。

我的全文索引:

CREATE FULLTEXT INDEX ON SubjectContent(Title, [Description]) 
KEY INDEX PK_SubjectContent
ON FullTextSearch;

我尝试更改全文目录的“重音敏感”属性和其他属性未成功。谢谢你的帮助。

4

1 回答 1

2

查看这两个字符串,我发现第二个字符串从全文的角度来看是一个更大的文档。这是因为你在那里有句子分隔符。因此,如果您将这些字符串传递给 dm_fts_parser,您将看到第一个字符串的最大出现次数为 11,第二个字符串为 21。全文在 16、32、128、256 等存储桶中规范化此文档长度,因此您的第一个文档位于第一个桶中,第二个位于第二个桶中。因此第一个具有更高的排名(与文档的长度成反比)。所有这些的参考都在这里http://msdn.microsoft.com/en-us/library/cc879245.aspx 谢谢Venkat

于 2012-12-12T18:59:01.260 回答