Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Usando a pesquisa de texto completo no SQL Server 2008 em várias tabelas, colunas


Usando FREETEXTTABLE, você só precisa projetar algum algoritmo para calcular a classificação mesclada em cada resultado da tabela unida. O exemplo abaixo distorce o resultado para as ocorrências da tabela de livros.
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

Observe que simplifiquei seu esquema para este exemplo.