全文搜索 - 同义词库文件未加载/工作

时间:2013-06-03 05:56:20

标签: sql-server full-text-search sql-server-2012 thesaurus

我正在尝试按照this教程查询全文搜索时设置同义词库文件。

我删除了以下文件中的评论

D:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\tseng.xml
D:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\tsglobal.xml

所以现在它包含默认的同义词(例如jog被run替换,反之亦然)。

现在,我使用

加载了同义词库文件
EXEC sys.sp_fulltext_load_thesaurus_file 1033;

我使用

测试我的词库
SELECT * FROM sys.dm_fts_parser ('FORMSOF(THESAURUS,"running")', 1033, 0, 0)

我只获得一行完全匹配

注意:

 SELECT * FROM sys.dm_fts_parser ('FORMSOF(Inflectional,"running")', 1033, 0, 0)

返回所有“RUN”变形)

我甚至尝试选择冒险工程2012(用“jog”一词更新几行后)

SELECT Description
FROM Production.ProductDescription
WHERE FREETEXT(Description, 'jog')

没有返回任何内容。 有任何想法吗? 感谢。

1 个答案:

答案 0 :(得分:6)

D:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\tseng.xml 

英国英语的文件,您指定的是美国英语(1033)的代码。

tsenu.xml将是美国英语的文件名。

如果您更改了代码或文件并重新加载但仍然无效,请确保以Unicode格式保存文件,而不是UTF-8或ANSI。

此外,文件路径可能不正确。

我遇到了与上述问题类似的问题,并被BOL链接误入歧途。我的问题,也可能是你的问题,应该保存文件的路径:

<SQL_Server_data_files_path>\MSSQL11.MSSQLSERVER\MSSQL\FTDATA\

这是您希望同义词库与数据目录关联的数据库的路径。虽然我正在运行SQL2012,但我在2008R2中创建了这个数据库,因此,它的数据目录在MSSQL10_50MSSQLSERVER\MSSQL\FTDATA

http://sqlblog.com/blogs/greg_low/archive/2008/08/13/modifying-the-thesaurus-in-full-text-search-in-sql-server-2008.aspx