您的位置:首页 > 数据库

SQL 2005 全文检索(续)

2008-02-29 16:11 288 查看
之前,简单介绍如何为SQL2005普通文本字段创建全文检索,这次是针对存储在数据库中的文件内容进行全文检索,创建cataglog和主键唯一索引和之前是一样的,不同的是在创建全文检索引时,有点不同,由于是以二进制方式存储的文件内容,因此需要文件的扩展名作为辅助,在创建索引时,需要指定这个存储文件扩展名的字段:

CREATE FULLTEXT INDEX ON [tablename]

(

[textfield] --Full-text index column name

TYPE COLUMN [FileExtension] --Name of column that contains file type information

Language 0X0 --0X0 is LCID for neutral language

)

KEY INDEX [IndexName] ON [CatelogName] --Unique index

WITH CHANGE_TRACKING AUTO --Population type

这种对文件内容进行全文检索,SQL 2005主要针对两种字段类型:VarBinary(Max), Image. 在更改了字段类型后,全文检索就不能正常工作了,检索不出想要的数据,比如:原来是Image,更改为VarBinary(MAX),此时需要重新创建全文索引就可以了,其他的不用做任何修改。另外,SQL 2005全文检索还支持以下字段类型:char, varchar, nvarchar, xml.其中,XML和VarBinary(MAX), Image类同。

另外,在删除已经存在的full-text catalog,重新创建同名的catalog, 会得到下面的错误提示:
File 'sysft_CatalogName' cannot be reused until after the next BACKUP LOG operation.

简单的解决办法是运行如下命令:

BACKUP LOG <Dbname> to disk="c:\temp.log"
这样可以通过全文检索搜索到文件内容中包含关键字的记录了,这种情况是在文件内容存储在数据库中时解决方案,如果,文件本身存储在磁盘上,如何进行全文检索呢?我知道一个解决方案是通过Lucene.Net来实现。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: