2009-11-10 8 views
11

Utilizzo la ricerca full text di SQL Server, con la parola chiave FREETEXTTABLE per restituire una tabella di risultati in base a poche colonne, alla ricerca di una parola chiave.Assegnazione di precedenza/peso a una colonna utilizzando FREETEXTTABLE

Ora ho 2 colonne principali su cui sto cercando, Titolo e Descrizione, voglio dare la precedenza alla colonna Titolo in quanto molto probabilmente avrà i miei risultati ma la descrizione potrebbe contenere anche risultati, ma voglio che dia precedenza per una parola in Title over Description (ma non voglio usare CONTAINSTABLE dato che è troppo specifico). C'è un modo per assegnare alle colonne il peso/la precedenza usando FREETEXTTABLE?

risposta

13

Avrete bisogno di usare 2 domande con un sindacato, fornendo un 'peso' della propria, qualcosa di simile:

select [key], sum(rnk) as weightRank 
from 
     (
      select Rank * 2.0 as rnk, [key] from freetexttable(tableName,Title,'free text string') 
      union all 
      select Rank * 1.0 as rnk, [key] from freetexttable(tableName,Description,'free text string') 
     ) as t 
group by [key] 
Problemi correlati