MS SQL SERVER FTS FREETEXTTABLE搜索部分单词

时间:2013-12-12 12:58:26

标签: sql-server-2008 full-text-search freetexttable

我使用FTS然后返回 查询“Møreforsking” 结果包含“Møre”作为单独的单词。 我知道“Møre”和“forsking”是不同的词,可以分开使用。 我该如何避免这个问题? 我想在所描述的情况下仅搜索整个单词。

1 个答案:

答案 0 :(得分:1)

我不确定您正在使用哪个代码页,因此我无法轻松测试它(SELECT 'language_id' AS "LCID" FROM sys.fulltext_index_columns;);如果word breaker正在分割单词,并考虑将更多的东西作为匹配的两个单词。您可以使用

测试断字器
SELECT * FROM sys.dm_fts_parser (' "Møreforsking" ', {YOURCODEPAGE}, 0, 0)

如果返回两个单词More and 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're restart_all_fdhosts'

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