在SQL Server 2008中使用PDF文件进行全文搜索

时间:2013-11-12 09:45:11

标签: sql-server-2008 pdf full-text-search

我有SQL Server 2008 R2,并且正在尝试在PDF BLOB上实现全文搜索。

我已经安装了Adobe的iFilter并确认已安装

使用

EXEC sp_help_fulltext_system_components 'filter';
  

filter .pdf E8978DA6-047F-4E3D-9C78-CDBE46041603
  C:\ Program Files \ Adob​​e \ Adob​​e PDF iFilter 11 for 64-bit platforms \ bin \ PDFFilter.dll
  11.0.1.36 Adob​​e Systems,Inc。

然后,我为FT索引创建了一个全文目录,并创建了FT索引

CREATE FULLTEXT INDEX ON Compliance_Updates
( 
FileDesc
 Language 1033,
 FileData
   TYPE COLUMN FileDataType
) 
 KEY INDEX PK_Compliance_Updates
     ON FT_Compliance_Updates; 

然后我在向表中添加一些PDF后强制重建索引。索引显示..

  

目录尺寸:0MB
  项目数:2
  独特钥匙数:7
  名称:FT_Compliance_Updates
  上次人口日期:12/11/2013 09:36
  人口状况:闲置

然而,当我执行以下搜索时,我得到零结果......

SELECT FileID, FileDesc, PubDate 
FROM Compliance_Updates 
WHERE CONTAINS(FileData, 'mortgage')

我尝试删除目录,删除所有表记录和索引(包括PK),重新运行iFilter安装

exec sp_fulltext_service 'load_os_resources', 1;
exec sp_fulltext_service 'verify_signature', 0;

重新启动SQL Server,重新创建索引和FT目录,似乎什么都没有用?

4 个答案:

答案 0 :(得分:4)

  • 版本11.x对我不起作用,但9.x工作。
  • 此外,您还需要在系统的PATH变量末尾添加C:\Program Files\Adobe\Adobe PDF iFilter 9 for 64-bit platforms\bin\。开始>控制面板>系统>高级 环境变量 - >系统变量 - >找到PATH

答案 1 :(得分:4)

版本11.x对我也没有用。 9.x工作:) 在Adobe的网站上很难找到9.x 64位。但是在FTP上你可以在这里找到它:ftp://ftp.adobe.com/pub/adobe/acrobat/win/9.x/

答案 2 :(得分:3)

iFilter通常可以正常工作,但在某些机器上却没有。我在工作中成功安装了它,但我的个人笔记本电脑失败了。您可以尝试以下方法:

  • 使用没有空格,国家字符的短路径安装iFilter并使其缩短。
  • 授予对安装iFilter的目录的所有用户的完全访问权限。当您使其正常工作时,您可以逐渐限制访问。
  • 确保将iFilter bin路径添加到SYSTEM路径而不是USER路径。

视频录制步骤可在此处找到 - http://dba-presents.com/index.php/sql-server/48-full-text-search-with-pdf-documents-in-sql-server-2014

答案 3 :(得分:2)

FWIW,即使使用SQL Server 2014,我也无法使用版本11.x工作,因此从上面提供的FTP链接下载了版本9.x.版本9.x似乎仍然是要走的路,因为它对我也有用! :^)