在哪里可以找到 sql server 全文搜索中英语的默认分词器列表?
问问题
3216 次
3 回答
0
可以通过运行以下查询来获得与分词器相关联的语言列表 -
SELECT * FROM sys.fulltext_languages;
我不确定是否有存储过程或内部表显示与每种语言关联的 .dll 文件,但可以在以下注册表项下查找 -
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\{SQL Instance Name}\MSSearch\CLSID\
每个 CLSID 的语言映射存储在 MSSearch\Language 中。
于 2012-09-27T21:44:44.163 回答
0
中性分词器(空格和标点符号)+ 特定于语言环境的值。因此,这取决于正在运行的英语语言环境。
请参阅http://technet.microsoft.com/en-us/library/ms142509(v=sql.100).aspx
于 2012-09-27T21:36:16.733 回答
0
使用存储过程sys.dm_fts_parser
,您可以针对分词器测试给定的字符串。以下查询测试从 char(32) 到 char(255) 的所有 ASCII 字符,并返回当前活动的断字字符列表。
declare @i integer
declare @cnt integer
set @i=32
while @i<255
begin
set @cnt=0
select @cnt=COUNT(1) FROM sys.dm_fts_parser ('"word1'+CHAR(@i)+'word2"', 1033, 0, 0)
if @cnt>1
begin
print CONCAT('ASCII ', @i, ': ', char(@i))
end
set @i=@i+1
end
结果:
ASCII 32:
ASCII 33: !
ASCII 34: "
ASCII 35: #
ASCII 36: $
ASCII 37: %
ASCII 38: &
ASCII 40: (
ASCII 41: )
ASCII 42: *
ASCII 43: +
... and so on ...
来源:https ://stuart-moore.com/generating-a-list-of-full-text-word-breakers-for-sql-server/
于 2019-01-21T12:10:07.430 回答