2013-12-12 28 views
0

的一部分,MS SQL SERVER FTS FREETEXTTABLE搜索我使用FTS,它的查询“Møreforsking” 结果包含“更多”作为一个单独的词返回 。 我知道“Møre”和“forsking”是不同的词,可以分开使用。 我该如何避免这个问题? 我想在所描述的情况下只搜索整个单词。通过字

回答

1

我不知道你在哪个代码页工作,所以我不能轻易测试它(SELECT 'language_id' AS "LCID" FROM sys.fulltext_index_columns;);如果word breaker正在分词,并考虑更多作为匹配的两个单词。您可以使用

SELECT * FROM sys.dm_fts_parser (' "Møreforsking" ', {YOURCODEPAGE}, 0, 0) 

如果被返回两个词越来越forsking那么你需要告诉FTS你的字Moreforking测试分词。您可以创建自己的自定义词典,并在缺失时添加该词。链接microsoft technet是有点混淆,因为它说遵循Sharepoint指令,但保存在一个sql文件夹。

的基础是

  1. 为您定制字的文件(阅读文章,以获得代码页右)
  2. 的文件只是一个单词的列表;最多每行一个
  3. 将文件保存到您的SQL实例(有时它像这样)字一个

    C:\ Program Files文件\ Microsoft SQL Server的\\ MSSQL \ BINN

  4. 获得FTS加载通过重新启动FTS守护进程的字典。

    的exec sp_fulltext_service 'restart_all_fdhosts'

坏消息是,你需要重新索引它生效;所以我会在测试中尝试它,并阅读分享点文章,如果你有很多索引的数据。

+0

非常感谢,我创建了自己的字典,它帮助! – BotanMan