views:

111

answers:

0

I have SQL Server 2005 with a Full Text index on a product table. I am running into issues with the word breaker parsing on the - (dash) character.

If I have the following values in my [Keyword Search] field I see the following results;

ABC-Z-XY more text...
ABC-A-XY more text...
ABC-ABC-XY more text...
ABC-ABC-CE more text...

-- bring back 0 results -->WRONG
select top(200) [Keyword Search],* from [dbo].[Products] AS I 
  where CONTAINS((I.[Keyword Search]), '"ABC-A-XY*"')

-- bring back All 4 results -->WRONG
select top(200) [Keyword Search],* from [dbo].[Products] AS I 
  where CONTAINS((I.[Keyword Search]), 'ABC-A-XY')

-- bring back all 4 results -->WRONG
select top(200) [Keyword Search],* from [dbo].[Products] AS I 
  where CONTAINS((I.[Keyword Search]), '"ABC-A-XY"')

-- bring back 1 results -->CORRECT
select top(200) [Keyword Search],* from [dbo].[Products] AS I 
  where (I.[Keyword Search] like '%ABC-A-XY%')

In investigating I found that the - (dash) is used as a word breaker. Is there a way to explicitly bypass in the SQL 2005? I want to expicilty identify that the search NOT use - (dash) to break words. I have tried using different language codes, and that did not seem to work. Any pointers?