Ricerca Full-Text

martedì 02 agosto 2011 - 08.34
Tag Elenco Tags  SQL Server 2008

voyager18 Profilo | Junior Member

Ciao a tutti! Ho una tabella su SQL Server 2008 con vari campi e su 3 di essi ho attivato un indice Full-Text.
In un campo indicizzato dal Full-Text ho questi 5 record:
TZ-325
TN 325BK
TN 325C
TN 325M
TN 325Y

Se faccio questa query però mi restituisce solo il primo record e ignora gli altri 4.
SELECT * FROM tbProva WHERE CONTAINS(*, '325')

Perchè mi ignora gli altri 4 record se contengono comunque il valore '325'?

lbenaglia Profilo | Guru

>Perchè mi ignora gli altri 4 record se contengono comunque il
>valore '325'?

Forse perché 325 è un prefisso?
Hai provato questa query?

SELECT * FROM tbProva WHERE CONTAINS(*, '325*');

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/

voyager18 Profilo | Junior Member

>Forse perché 325 è un prefisso?
>Hai provato questa query?
>
>SELECT * FROM tbProva WHERE CONTAINS(*, '325*');
Mi da sempre lo stesso risultato.

lbenaglia Profilo | Guru

>Mi da sempre lo stesso risultato.
E così?

SELECT * FROM tbProva WHERE CONTAINS(*, ' "325*" ');

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/

voyager18 Profilo | Junior Member

>E così?
>
>SELECT * FROM tbProva WHERE CONTAINS(*, ' "325*" ');
Si questa query funziona benissimo se la faccio da SSMS ma se la faccio da codice mi da errore di sintassi. La query fatta da codice è questa:

Cmd.CommandText = "SELECT * FROM tbProva WHERE CONTAINS(*, @Chiave)";
Cmd.Parameters.Add("Chiave", SqlDbType.VarChar).Value = @"' ""*" + strKey + @"*"" '";

lbenaglia Profilo | Guru

>>SELECT * FROM tbProva WHERE CONTAINS(*, ' "325*" ');
>Si questa query funziona benissimo se la faccio da SSMS ma se
>la faccio da codice mi da errore di sintassi. La query fatta
>da codice è questa:
>
>Cmd.CommandText = "SELECT * FROM tbProva WHERE CONTAINS(*, @Chiave)";
>Cmd.Parameters.Add("Chiave", SqlDbType.VarChar).Value = @"' ""*"
>+ strKey + @"*"" '";

E' un problema di apici (singoli, doppi, o entrambi).
Pasticcia un po' e troverai la soluzione

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5