我有两个不同的环境,一个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
方法的结果不同。你可以在这里看到我的问题
我的建议是创建你自己的分词系统。
在这里查看相关问题的答案