按Rank排序的S​​QL SELECT FREETEXT

Mar*_*o M 3 sql sql-server freetext

我在SQL Server 2008中有这个查询

SELECT TOP 1000 * 
FROM Quotes 
INNER JOIN QuoteImages ON Quotes.Id = QuoteImages.QuoteId 
WHERE FREETEXT(QuoteText,'some text')
Run Code Online (Sandbox Code Playgroud)

如何按最相关或最高排名订购结果?

我已经阅读了msdn文档,但它似乎很复杂,我不知道如何创建复杂的存储过程.

Lam*_*mak 12

您应该使用FREETEXTTABLE(链接)而不是FREETEXT:

SELECT TOP 1000 Q.*, QI.*
FROM Quotes Q
INNER JOIN QuoteImages QI
    ON Q.Id = QI.QuoteId 
INNER JOIN FREETEXTTABLE(Quotes,QuoteText,'some text') FT
    ON Q.Id = FT.[Key]
ORDER BY RANK DESC
Run Code Online (Sandbox Code Playgroud)