Of the word breaker and stemmer for the English language. Word breaker installed by previous versions. Software component prerequisites [Applies to: Microsoft Dynamics CRM 4.0] The following SQL Server components are not installed during Setup and must be installed and running on the.
Hi There, We have a unique situation with searches. The main string tried for searching is - hr001.2005.05.05 The column that has this string, a full-text index has been created with the language word-breaker as 'Neutral'. While searching for this string in SQL 2005 the searches are working. While the same is not working in 2008. Select. from table where contains (column, 'hr001.'
) - works in SQL 2005 and 2008 select. from table where contains (column, 'hr001.' ) - works in SQL 2005 and 2008 select. from table where contains (column, 'hr001.2.' ) - works in SQL 2005 and not in 2008 There is no change in the column, word-breaker language etc in the environments except that the version of the SQL is changed from 2005 to 2008.
Is this already a problem with SQL identified in 2008? Can someone please provide the reasoning why there is a change in the behavior? Thanks, SivakumarThanks, Kumar.
Kumar, My first guess would be that you are using Stopwords in 2008. The digits 1, 2, etc are all stop words in the system stopword list. Because you are looking for a phrase 'hr001.2.' , but '2' is a stopword and is not searched, then you cannot find that phrase. However, if you change your index to NOT use an stopword list, then 2 will be indexed. (You will have to refresh the full text index.) So, I do not believe that this is a behavior change, but a setting difference.
(In 2005 these were call noise words and were listed in a noise word file. 2008 does not use the old noise word files.) RLF. Thanks much Russell for your inputs. I tried creating a custom stop list for the full-text index and made sure that the numbers 1,2 are not part of it.
Still there is no improvement in the search functionality. I went to the extreme of delete all the stop words from the stop list and associated same to the full-text index and still there is no luck. Please let me know if I am missing anything here. Request you to verify the behavior in your SQL 2005 environments and 2008 environments as I was consistently able to replicate this behavior in multiple environments.Thanks, Kumar. When you choose NEUTRAL over ENGLISH as the language some things do change. On your 2008 server you can run: select. from sys.dmftsparser ('hr001.2.'
,1033,null,0)select. from sys.dmftsparser ('hr001.2.' ,0,null,0) If you look at the results, the English(1033) does not see the '.'
, but Neutral(0) does see it. I am using NULL for the stopword list, but you can use some other list if you wish. This parser is very useful for figuring out what Full Text will do.
(It does not exist before SQL Server 2008.) Here is a script to play with. Russell, Really thank you for taking time and explaining with an example. Firstly I apologize for not mentioning the test results in 2008 for English language.
I tested this even beofre posting this thread. I was getting the expected results when I use English language for word-breaker. Coming back to your example, I could nail down the issue to be the additional dot's present in the actual string.