Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Verwenden der Volltextsuche in SQL Server 2008 über mehrere Tabellen und Spalten hinweg

Mit FREETEXTTABLE müssen Sie nur einen Algorithmus entwerfen, um den zusammengeführten Rang für jedes verbundene Tabellenergebnis zu berechnen. Das folgende Beispiel verzerrt das Ergebnis zu Treffern aus der Buchtabelle.

SELECT b.Name, a.Name, bkt.[Rank] + akt.[Rank]/2 AS [Rank]
FROM Book b
INNER JOIN Author a ON b.AuthorID = a.AuthorID
INNER JOIN FREETEXTTABLE(Book, Name, @criteria) bkt ON b.ContentID = bkt.[Key] 
LEFT JOIN FREETEXTTABLE(Author, Name, @criteria) akt ON a.AuthorID = akt.[Key]
ORDER BY [Rank] DESC

Beachten Sie, dass ich Ihr Schema für dieses Beispiel vereinfacht habe.