加入收藏 | 设为首页 | 会员中心 | 我要投稿 济南站长网 (https://www.0531zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2021-01-13 08:44:13 所属栏目:MsSql教程 来源:网络整理
导读:我在SQL Server 2005中索引PDF文件时遇到了一个奇怪的问题,希望有人可以提供帮助.我的数据库有一个名为MediaFile的表,其中包含以下字段:MediaFileId int identity pk,FileContent image和FileExtension varchar(5).我的Web应用程序在此表中存储文件内容没

我在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 FilesAdobePDF IFilter 6.0PDFFILT.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已安装
>在表格上创建全文索引
>完全重新索引

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

(编辑:济南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读