0

I have two different environments, a LIVE and a STAGING environment.

These are running SQL Server 2016 web edition but there are slight differences in the version of both the SQL host itself, and some full text components, namely the word breaker (MsWb7.dll)

LIVE: SQL: 13.0.1728.2, Word breaker: 15.0.4569.1503
STAGING: SQL: 13.0.4466.4, Word breaker: 14.0.4763.1000

I obtain the wordbreaker versions using:

EXEC sp_help_fulltext_system_components 'wordbreaker';

I am using sys.dm_fts_parser to break a word using an underscore:

SELECT *
FROM sys.dm_fts_parser('xxxx_yyyy', 1033, 0, 0)

WHERE 1033 is the LCID for English.

Here are the results in LIVE:

keyword                                   group_id    phrase_id   occurrence  special_term     display_term  expansion_type source_term
---------------------------------------------------------------------------------------------------------------------------------------
0x006200750069006C005F006E003000350030    1           0           1           Exact Match      xxxx_yyyy                                                                                                                                                                                                                                                        0              xxxx_yyyy
0x006200750069006C                        1           0           1           Exact Match      xxxx          0              xxxx_yyyy
0x006E003000350030                        1           0           2           Exact Match      yyyy          0              xxxx_yyyy

And the results in STAGING:

keyword                                   group_id    phrase_id   occurrence  special_term     display_term  expansion_type source_term
---------------------------------------------------------------------------------------------------------------------------------------
0x006200750069006C005F006E003000350030    1           0           1           Exact Match      xxxx_yyyy                                 

I can't see how I can control what characters are used by the wordbreaker, this seems hardcoded, which suggests that upgrading the wordbreaker component is the way forward, but I can't find any information on how to do that.

Anybody else experience this?

Matthew Abbott
  • 60,571
  • 9
  • 104
  • 129

1 Answers1

1

It is too late but,

I had the same problem and for me the results of sys.dm_fts_parser method were different. you can see my question here

My suggestion is creating your own word breaker.

see the answer of a related question here