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.

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top