我正在尝试按照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')
没有返回任何内容。 有任何想法吗? 感谢。
答案 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