代码之家  ›  专栏  ›  技术社区  ›  Thomas Lundström

SQL Server全文搜索-即使单词存在也未命中

  •  0
  • Thomas Lundström  · 技术社区  · 15 年前

    我在SQLServer2005上进行全文搜索时遇到问题。在我的设置中,我为单个列编制索引,我们称之为内容。索引是在中性区域性中完成的,因为列可能包含不同语言的文本。全文索引创建如下:

    CREATE FULLTEXT INDEX
     ON [dbo].[Table1]([Content])
    KEY INDEX [UI_Table1_Id] ON [Catalog]
    WITH CHANGE_TRACKING AUTO
    

    这张桌子就满了。然后用户可以根据索引进行查询。查询有点像这样:

    SELECT * FROM Table1 AS table1
    INNER JOIN CONTAINSTABLE (Table1, Content, @0 , LANGUAGE 1033) AS KEY_TBL 
    ON table1.Id = KEY_TBL.[KEY]
    WHERE table1.locale = 'en-US'
    

    不过,我有一个问题。如果列中填充了一个包含单词“koncepttitel”的文本,并且我对它进行了查询,那么如果使用瑞典语(语言1053),则不会得到任何结果。如果我用英语(1033语言)来形容同一个词,我会很受欢迎的。

    有什么方法可以让我配置SQL Server全文搜索以输出比此更多的诊断信息吗?例如,是否有一种方法可以让我查看全文搜索条件包含的干扰词?

    问题是,我不太在乎我的用户搜索这个特定的词。然而,我担心这个错误可能会跨越更多相关的搜索词,这是我无法预见的,这意味着我的用户将无法找到他们正在寻找的。

    更新 :我想知道我是否误解了全文搜索的设置。这个问题可能是因为我在中立文化中对内容进行了索引,并在特定文化中进行了查询?我应该在查询时始终使用中性文化吗?

    1 回复  |  直到 15 年前
        1
  •  0
  •   doug_w    15 年前

    在我处理FTS和noise文件时,需要重新启动服务(FTS服务),然后运行更新填充。

    根据大小,您可能只需要考虑删除索引并重新创建它。