我在SQL Server 2005中索引PDF文件时遇到了奇怪的问题,希望有人能帮忙解决。我的数据库有一个名为MediaFile的表,包含以下字段:MediaFileId int identity pk,FileContent image和FileExtension varchar(5)。我的Web应用程序可以将文件内容存储在该表中,doc、xls等文件的全文搜索也没有问题,唯一不能正常工作的是PDF文件。当在该表上执行全文搜索时,对于我知道存在于保存在该表中的PDF文件中的单词,这些文件不会出现在搜索结果中。
操作系统为Windows Server 2003 SP2,并已安装Adobe iFilter 6.0。按照此博客文章的说明,我执行了以下命令:
这将返回以下信息,看起来正确:
这会返回包含该词的DOC文件,但不包括任何PDF文件,尽管我知道表格中肯定有包含“house”一词的PDF文件。
顺便说一下,我曾经让上面的搜索正确返回了PDF文件,但后来又停止工作了,原因不明。
有什么想法可以阻止SQL Server 2005索引PDF文件,即使已安装Adobe iFilter并且似乎已加载?
操作系统为Windows Server 2003 SP2,并已安装Adobe iFilter 6.0。按照此博客文章的说明,我执行了以下命令:
exec sp_fulltext_service 'load_os_resources', 1;
exec sp_fulltext_service 'verify_signature', 0;
接着,我重启了 SQL Server,并通过执行以下命令验证 PDF 扩展的 iFilter 是否正确安装:
select document_type, path from sys.fulltext_document_types where document_type = '.pdf'
这将返回以下信息,看起来正确:
然后我重新创建了MediaFile表的索引,选择FileContent作为要索引的列,FileExtension作为其类型。向导创建索引并成功完成。为了测试,我执行了以下搜索:文档类型:.pdf
路径:C:\Program Files\Adobe\PDF IFilter 6.0\PDFFILT.dll
SELECT MediaFileId, FileExtension FROM MediaFile WHERE CONTAINS(*, '"house"');
这会返回包含该词的DOC文件,但不包括任何PDF文件,尽管我知道表格中肯定有包含“house”一词的PDF文件。
顺便说一下,我曾经让上面的搜索正确返回了PDF文件,但后来又停止工作了,原因不明。
有什么想法可以阻止SQL Server 2005索引PDF文件,即使已安装Adobe iFilter并且似乎已加载?