Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo consente di risolvere il problema che si verifica quando si esegue una ricerca full-text sui dati di tipo carattere di SQL Server o quando si usa una query distribuita SQL con il provider OLE DB (MSIDXS) di Microsoft Index Server e una ricerca di espansione del prefisso per una parola composta contenente un trattino (ad esempio, XYZ-A*).
Si applica a: SQL Server
Numero KB originale: 200043
Sintomi
Quando si esegue una ricerca full-text sui dati di tipo carattere di SQL Server o quando si usa una query distribuita SQL con il provider OLE DB di Microsoft Index Server (MSIDXS) e una ricerca di espansione del prefisso per una parola composta contenente un trattino (ad esempio, "XYZ-A*"), i risultati generati potrebbero non essere come previsto.
Causa
Una ricerca full-text considera una parola come una stringa di caratteri senza spazi o punteggiatura. L'occorrenza di un carattere non alfanumerico può interrompere una parola durante una ricerca. Poiché la ricerca full-text di SQL Server è un motore basato su parole, la punteggiatura in genere non viene considerata e viene ignorata durante la ricerca nell'indice. Pertanto, una CONTAINS
clausola come CONTAINS(testing, "computer-failure")
corrisponderebbe a una riga con il valore , L'errore di trovare il computer sarebbe costoso.
Soluzione alternativa
Per risolvere il problema, provare uno dei metodi seguenti:
Usare solo caratteri alfanumerici quando si usano le funzionalità dell'indice full-text di SQL Server.
Dove è necessario usare un carattere non alfanumerico nei criteri di ricerca (principalmente il carattere trattino
-
), usare la clausola Transact-SQLLIKE
anziché iFULLTEXT
predicati oCONTAINS
.
Ulteriori informazioni
Microsoft SQL Server versione 7.0 consente di eseguire una query full-text sui dati di tipo carattere archiviati nelle tabelle di SQL Server. È anche possibile usare una query distribuita SQL con il provider MSIDXS per cercare i dati del file system. L'uso del trattino (-
) in una ricerca di prossimità non è supportato e può dare risultati imprevisti.
Riferimenti
Per altre informazioni sulla ricerca full-text di SQL Server, vedere la documentazione online di SQL Server.
Per altre informazioni sull'uso della clausola CONTAINS con il provider Microsoft Index Server (MSIDXS), vedere la documentazione di Index Server nella documentazione di Windows NT 4.0 Option Pack.