之前,简单介绍如何为SQL2005普通文本字段创建全文检索,这次是针对存储在数据库中的文件内容进行全文检索,创建cataglog和主键唯一索引和之前是一样的,不同的是在创建全文检索引时,有点不同,由于是以二进制方式存储的文件内容,因此需要文件的扩展名作为辅助,在创建索引时,需要指定这个存储文件扩展名的字段:
SQL 2005 全文检索(续)CREATE FULLTEXT INDEX ON [tablename]
SQL 2005 全文检索(续)(
SQL 2005 全文检索(续)    
[textfield]                         --Full-text index column name 
SQL 2005 全文检索(续)
        TYPE COLUMN [FileExtension]    --Name of column that contains file type information
SQL 2005 全文检索(续)
        Language 0X0                 --0X0 is LCID for neutral language
SQL 2005 全文检索(续)
)
SQL 2005 全文检索(续)
KEY INDEX [IndexName] ON [CatelogName] --Unique index
SQL 2005 全文检索(续)
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, 会得到下面的错误提示:
SQL 2005 全文检索(续)File 'sysft_CatalogName' cannot be reused until after the next BACKUP LOG operation.

简单的解决办法是运行如下命令:
SQL 2005 全文检索(续)BACKUP LOG <Dbname> to disk="c:\temp.log"

这样可以通过全文检索搜索到文件内容中包含关键字的记录了,这种情况是在文件内容存储在数据库中时解决方案,如果,文件本身存储在磁盘上,如何进行全文检索呢?我知道一个解决方案是通过Lucene.Net来实现。

相关文章:

  • 2021-09-04
  • 2021-06-08
  • 2022-02-18
  • 2021-10-17
  • 2021-11-14
  • 2021-11-18
  • 2021-06-25
猜你喜欢
  • 2022-12-23
  • 2021-10-13
  • 2021-06-17
  • 2021-12-30
  • 2022-12-23
相关资源
相似解决方案