这是关于全文搜索的参数top_n_by_rank
。问题top_n_rank全文搜索
我有一个查询,假设:
SELECT *
FROM Publisher p
INNER JOIN FREETEXTTABLE(Publisher, Name, @searchText, 100) PublisherSearch
ON p.Id = PublisherSearch.[Key]
ORDER BY PublisherSearch.[Rank]
在这里,我已经给了top_n_by_rank = 100
。 这应该给我排名前100的记录。 但我只收到61条记录。 当我删除top_n_rank
参数,它给了我超过1000条记录。
我的问题是,top_n_by_rank
参数是只搜索前100个记录还是 它是否搜索所有记录并只获得前100个搜索结果?
当你删除INNER JOIN并像以上那样运行FREETEXTTABLE查询时会发生什么 - 从FREETEXTTABLE(Publisher,Name,@searchText,100)中选择* *?关于FREETEXTTABLE的MSDN文章指出:“如果top_n_by_rank与其他参数结合使用,则查询可能返回的行数少于实际匹配所有谓词的行数。” – aks