我按照步骤创建并配置了相关信息,可是数据还是查不出来:相关的语句如下:
--检查pubs是否支持全文索引,如果不支持全文索引,则使用 sp_fulltext_datebase打开该功能
if (select databaseproperty ('ChinaCooker','IsFulltextEnables'))=0
execute sp_fulltext_database 'enable'
--建立全文目录FT_ChinaCooker
execute sp_fulltext_catalog 'FT_ChinaCooker','create'
--为titles表建立全文索引数据元
execute sp_fulltext_table 'goods','FT_ChinaCooker','IX_goods'
--设置全文索引列名
execute sp_fulltext_column 'goods','goodsname','add'
--建立全文索引
execute sp_fulltext_table 'FT_ChinaCooker','activate'
--填充全文索引目录
execute sp_fulltext_catalog 'FT_ChinaCooker','start_full'
GO
--检查全文目录填充情况
WHILE FulltextCatalogProperty('FT_ChinaCooker','PopulateStatus')<>0
BEGIN
--如果全文目录正处于填充状态,则等待30秒后再检测一次
WAITFOR DELAY '0:0:30'
END
--全文目录填充完成后,使用全文目录检索
go
select * from goods where contains(goodsname,'adsfsd')
'adsfsd'为列的值。
在数据库中本来是有这样的值的,但是在查询的时候却查不出来,那位看一下,是什么错误。或者有什么不对的地方。
http://www.cnblogs.com/xiaogangqq123/archive/2010/04/30/1724672.html
可能是分词的问题,SQL SERVER 的全文索引不太好用,我原来用过,效率不高,配置也比较麻烦,功能也比较少,增加分词器什么也比较麻烦。不过这里没有结果,可能是你这个adsfsd 在句子中不是整词造成的。
你可以用 HubbleDotNet 做全文索引试试。在 HubbleDotNet 中如果搜的词不是整词,只是词的一部分,可以用
select * from goods where goodsname like('*adsfsd*') 这样的语句来搜索
全文索引时,分词对索引结果影响很大。你可以到博客园的搜索引擎小组去参加讨论
http://space.cnblogs.com/group/search/