【发布时间】:2013-12-12 12:58:26
【问题描述】:
我使用 FTS 并返回 查询 “Møreforking” results 包含 "Møre" 作为单独的词。 我知道“Møre”和“forsking”是不同的词,可以分开使用。 我怎样才能避免这个问题? 我只想在所描述的情况下搜索整个单词。
【问题讨论】:
标签: sql-server-2008 full-text-search freetexttable
我使用 FTS 并返回 查询 “Møreforking” results 包含 "Møre" 作为单独的词。 我知道“Møre”和“forsking”是不同的词,可以分开使用。 我怎样才能避免这个问题? 我只想在所描述的情况下搜索整个单词。
【问题讨论】:
标签: sql-server-2008 full-text-search freetexttable
我不确定您正在使用哪个代码页,所以我无法轻松对其进行测试 (SELECT 'language_id' AS "LCID" FROM sys.fulltext_index_columns;);如果word breaker 将单词拆分并考虑将 moreforsking 作为两个单词进行匹配。您可以使用
SELECT * FROM sys.dm_fts_parser (' "Møreforsking" ', {YOURCODEPAGE}, 0, 0)
如果返回两个词 More 和 forsking,那么你需要告诉 FTS 你的词 Moreforking。您可以创建自己的自定义词典并在缺少单词时添加。链接的 microsoft technet 对此有点困惑,因为它说遵循 Sharepoint 说明,但保存在 sql 文件夹中。
基础是
将文件保存到您的 SQL 实例中(有时像这样)
C:\Program Files\Microsoft SQL Server\\MSSQL\Binn
通过重新启动 FTS 守护程序让 FTS 加载字典。
exec sp_fulltext_service 'restart_all_fdhosts'
坏消息是您需要重新索引才能使其生效;因此,如果您有大量已编入索引的数据,我会在测试中尝试并阅读分享点文章。
【讨论】: