Puoi eseguire una ricerca AND di parole chiave utilizzando FREETEXT() su SQL Server 2005?
-
09-06-2019 - |
Domanda
C'è un richiesta per rendere la ricerca SO predefinita su una funzionalità di stile AND rispetto all'OR corrente quando vengono utilizzati più termini.
La risposta ufficiale è stata:
non così semplice come sembra;utilizziamo SQL Server 2005 TESTO LIBERO() funzione e non riesco a trovare un modo per specificare AND vs.OPPURE... puoi?
Allora, c'è un modo?
Ci sono numero di risorse su di esso posso trovare, ma non sono un esperto.
Soluzione
OK, questa modifica è presente: ora usiamo CONTAINS()
con implicito AND
invece di FREETEXT()
ed è implicito OR
.
Altri suggerimenti
Per quanto ho visto, lo è non possibile fare AND quando si utilizza FREETEXT() in SQL 2005 (né 2008, afaik).
Per impostazione predefinita, una query FREETEXT ignora gli operatori booleani, di prossimità e con caratteri jolly.Comunque potresti fare questo:
WHERE FREETEXT('You gotta love MS-SQL') > 0
AND FREETEXT('You gotta love MySQL too...') > 0
O questo è quello che penso :)
-- L'idea è di renderlo booleano, in modo da poter utilizzare gli operatori booleani.Non so se questo darebbe un errore o meno.lo penso Dovrebbe lavoro.Ma il materiale di riferimento sottolinea il fatto che ciò non è possibile in base alla progettazione.
L'uso di CONTAINS() invece di FREETEXT() potrebbe aiutare.
Ho appena iniziato a leggere sul testo libero, quindi abbi pazienza.Se quello che stai cercando di fare è consentire la ricerca di un tag, ad esempio VB, trovare anche cose contrassegnate come VB6, Visual Basic, VisualBasic e VB.Net, tali valori non verrebbero impostati come sinonimi nel Thesaurus del DB anziché nei parametri di query ?
Se davvero è così, ecco collegamento su MSDN spiega come aggiungere elementi al Thesaurus.