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

时间:2010-02-10 14:27:07

标签: sql-server sql-server-2005 tsql full-text-search

我在SQL Server 2005上遇到全文搜索问题。在我的设置中,我正在索引单个列,我们称之为内容。索引在中性文化中完成,因为该列可能包含不同语言的文本。全文索引创建如下:

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'

正如我所说,内容列包含不同的语言。因此,LANGUAGE(和CONTAINSTABLE中的table1.locale ='en-US'可能会改变,例如丹麦语,英语或瑞典语LCID。

但是,我遇到了一个问题。如果该列填充了包含单词“koncepttitel”的文本并且我查询它,那么如果使用瑞典语(LANGUAGE 1053),则不会发出命中。如果我使用英语(LANGUAGE 1033)获得相同的单词,我会受到欢迎。

之前我收到了“信息:全文搜索条件包含噪音词”。错误信息。然后我清除了瑞典语单词列表。现在我没有收到任何错误消息,但我仍然无法得到我的查询。

有没有办法让我配置SQL Server全文搜索以输出比这更多的诊断信息?有没有,例如一种让我看到全文搜索条件包含哪个噪音词的方法?

问题是,我并不在乎搜索这个特定单词的用户。但是,我担心此错误可能涉及更相关的搜索字词,我无法预见,这意味着我的用户将无法找到他们想要的内容。

更新:我想知道我是否可能误解了全文搜索的设置。这个问题可能是由于我将中性文化中的内容编入索引并查询特定文化吗?查询时我应该总是使用中性文化吗?

1 个答案:

答案 0 :(得分:0)

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

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