sql >> Base de Datos >  >> RDS >> Sqlserver

Uso de la búsqueda de texto completo en SQL Server 2008 en varias tablas y columnas

Usando FREETEXTTABLE, solo necesita diseñar algún algoritmo para calcular el rango combinado en cada resultado de la tabla unida. El siguiente ejemplo sesga el resultado hacia las visitas de la tabla de libros.

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

Tenga en cuenta que simplifiqué su esquema para este ejemplo.