0

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

这些正在运行 SQL Server 2016 网络版,但 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)

WHERE1033是英语的 LCID。

以下是现场直播的结果:

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

分期结果:

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

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

还有其他人经历过这个吗?

4

1 回答 1

1

为时已晚,但是,

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

我的建议是创建自己的断词器。

在此处查看相关问题的答案

于 2019-08-11T10:31:14.623 回答