SQL Server Word Breaker版本之间的差异(全文搜索)



我有两个不同的环境,一个LIVE环境和一个STAGING环境。

这些正在运行SQL Server 2016 web版,但SQL主机本身和一些全文组件的版本略有不同,即分词器(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

我使用获得破字版本

EXEC sp_help_fulltext_system_components 'wordbreaker';

我使用sys.dm_fts_parser使用下划线打断单词:

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

其中1033是英语的LCID。

以下是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

STAGING:的结果

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

我看不出如何控制分词器使用哪些字符,这似乎是硬编码的,这表明升级分词器组件是前进的方向,但我找不到任何关于如何的信息。

还有人经历过吗?

为时已晚,但是,

我有同样的问题,对我来说sys.dm_fts_parser方法的结果不同。你可以在这里看到我的问题

我的建议是创建你自己的分词系统。

在这里查看相关问题的答案

最新更新