微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

sql-server-2005 – 在SQL Server 2005中使用PDF文件进行全文搜索

我在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.按照this blog entry的说明,我执行了以下命令:

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'

这将返回以下信息,看起来正确:

document_type: .pdf
path: C:\Program Files\Adobe\PDF IFilter 6.0\PDFFILT.dll

然后我(重新)在MediaFile表上创建了索引,选择FileContent作为索引列,将FileExtension作为其类型.该向导将创建索引并成功完成.为了测试,我正在执行这样的搜索

SELECT MediaFileId,FileExtension FROM MediaFile WHERE CONTAINS(*,'"house"');

这将返回包含此术语但不包含任何PDF文件的DOC文件,但我知道表中肯定有PDF文件包含单词house.

顺便说一句,我让这个工作了几分钟,上面的搜索返回了正确的PDF文件,但后来它没有明显的原因再次停止工作.

关于什么可以阻止sql Server 2005索引PDF的任何想法,即使安装了Adobe iFilter并且似乎已加载?

解决方法

谢谢伊万.管理最终通过从头开始一切来实现这一点.似乎完成任务的顺序会产生很大的不同,并且在加载iFilter后关联博客关闭’load_os_resources’设置的建议可能不是最好的选择,因为这会导致iFilter重新启动sql Server时不加载.

如果我没记错的话,最终对我有用的步骤顺序如下:

>确保表中没有索引(如果是,则删除它)
>安装Adobe iFilter
>执行命令exec sp_fulltext_service’load_os_resources’,1;
>执行命令exec sp_fulltext_service’verify_signature’,0;
>重新启动sql Server
>验证PDF iFilter已安装
>在表格上创建全文索引
>完全重新索引

尽管这样做了,但我确信在最终开始正常工作之前,我已经执行了几次这些步骤.

原文地址:https://www.jb51.cc/mssql/83545.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐