SQL全文搜索

时间:2009-04-22 07:41:48

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

我在SQL Server 2008 express中设置了全文搜索功能。这就是我所做的:

-- STEP 1: Create catalog
create fulltext catalog HtmlSearch

-- STEP 2: Fill catalog
create fulltext index on docs
(WordHtml)
key index IX_docs_1
on HtmlSearch
with change_tracking auto

-- STEP 3: Search
select * from docs
where freetext(*, 'beleid')

表docs有一行字段WordHtml具有(html)内容。当我执行第3步时,没有任何反应。我确信html文档中存在“beleid”一词。查询结果为0条记录。那么我做错了什么?我在哪里必须配置此字段是Html?所以,我该怎么做?

1 个答案:

答案 0 :(得分:1)

类似的查询在我拥有的数据库上工作,所以我会看一下设置。以下是您可以尝试的一些事项:

无论如何,索引似乎对你没什么好处,所以我放弃它并尝试重新创建它。我只熟悉2005,但你使用的语法看起来不像我的。您可以尝试(在适当的下降后)

CREATE FULLTEXT Catalog HtmlSearch AS DEFAULT;

GO

CREATE FULLTEXT INDEX ON docs
( WordHtml Language English )
KEY INDEX IX_docs_1
WITH CHANGE_TRACKING auto;

GO

我假设WordHtml是您要索引的列的名称。如果是这样,那么这与我在2005年所做的相符。

接下来,您可以尝试显式填充全文索引。这可能没有必要,但我在创建全文索引后总是这样做。

ALTER FULLTEXT INDEX ON docs
START FULL POPULATION;

GO