0

我使用 FTS,它返回查询“Møreforking” 结果包含“Møre”作为单独的词。我知道“Møre”和“forsking”是不同的词,可以分开使用。我怎样才能避免这个问题?我只想在描述的情况下搜索整个单词。

4

1 回答 1

1

我不确定您正在使用哪个代码页,所以我无法轻松测试它(SELECT 'language_id' AS "LCID" FROM sys.fulltext_index_columns;);如果分词器将单词拆分并考虑将 moreforsking 作为两个单词进行匹配。您可以使用

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

如果那是返回两个词 More 和 forsking,那么你需要告诉 FTS 你的词 Moreforking。您可以创建自己的自定义词典并在缺少单词时添加。链接的microsoft technet对此有点困惑,因为它说遵循 Sharepoint 说明,但保存在 sql 文件夹中。

基础是

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

    C:\Program Files\Microsoft SQL Server\\MSSQL\Binn

  4. 通过重新启动 FTS 守护程序让 FTS 加载字典。

    执行 sp_fulltext_service 'restart_all_fdhosts'

坏消息是您需要重新索引才能使其生效;因此,如果您有大量已编入索引的数据,我会在测试中尝试并阅读分享点文章。

于 2013-12-12T13:23:47.517 回答