4

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

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

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”变形)

我什至尝试选择 AdventureWorks2012 (在用单词“jog”更新了几行之后)

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

什么都没有返回。有任何想法吗?谢谢。

4

1 回答 1

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

British English的文件,您正在指定US English (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

于 2013-08-07T01:29:15.597 回答