Microsoft KB Archive/200043

= PRB: Dashes '-' Ignored in Search with SQL Full-Text and MSIDXS Queries =

Article ID: 200043

Article Last Modified on 11/17/2003

-

APPLIES TO


 * Microsoft SQL Server 2000 Standard Edition
 * Microsoft SQL Server 7.0 Standard Edition
 * Microsoft OLE DB Provider for Index Server 2.0

-



This article was previously published under Q200043



SYMPTOMS
When performing a full-text search on SQL Server character data, or when using a SQL distributed query with the Microsoft Index Server OLE DB provider (MSDIXS) and a prefix expansion search for a compound word that contains a hyphen (for example, "XYZ-A*"), the results produced may not be as expected.



CAUSE
A full-text search considers a word to be a string of characters without spaces or punctuation. The occurrence of a non-alphanumeric character can "break" a word during a search. Because the SQL Server full-text search is a word-based engine, punctuation generally is not considered and is ignored when searching the index. Therefore, a CONTAINS clause like 'CONTAINS(testing, "computer failure")' would match a row with the value, "The failure to find my computer would be expensive.".

WORKAROUND
To work around this problem, try the following:
 * Only use alphanumeric characters when using the SQL Server full-text index facilities.

-or-
 * Where non-alphanumeric character must be used in the search critera (primarily the dash '-' character), use the Transact-SQL LIKE clause instead of the FULLTEXT or CONTAINS predicates.



STATUS
This behavior is by design.



MORE INFORMATION
Microsoft SQL Server version 7.0 provides the ability to perform a full-text query on character data stored in SQL Server tables. You can also use a SQL distributed query with the MSDIXS provider to search for file system data. Using the dash ('-') in a proximity search is not supported and may give unexpected results.

