SQL 2005 全文检索(续)
之前,简单介绍如何为SQL2005普通文本字段创建全文检索,这次是针对存储在数据库中的文件内容进行全文检索,创建cataglog和主键唯一索引和之前是一样的,不同的是在创建全文检索引时,有点不同,由于是以二进制方式存储的文件内容,因此需要文件的扩展名作为辅助,在创建索引时,需要指定这个存储文件扩展名的字段:
这种对文件内容进行全文检索,SQL 2005主要针对两种字段类型:VarBinary(Max), Image. 在更改了字段类型后,全文检索就不能正常工作了,检索不出想要的数据,比如:原来是Image,更改为VarBinary(MAX),此时需要重新创建全文索引就可以了,其他的不用做任何修改。另外,SQL 2005全文检索还支持以下字段类型:char, varchar, nvarchar, xml.其中,XML和VarBinary(MAX), Image类同。
另外,在删除已经存在的full-text catalog,重新创建同名的catalog, 会得到下面的错误提示:
简单的解决办法是运行如下命令:
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
(
[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来实现。