Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Utilizzo della ricerca full-text in SQL Server 2008 su più tabelle, colonne

Usando FREETEXTTABLE, devi solo progettare un algoritmo per calcolare il rango unito su ogni risultato di tabella unita. L'esempio seguente distorce il risultato verso i risultati della tabella dei libri.

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

Nota che ho semplificato il tuo schema per questo esempio.