通过SQL Server 2012的FILETABLE
功能处理大量Office和PDF文档,并在此基础上使用全文本搜索,我会不知所措。
我已将SQL Server配置为支持全文本搜索和文件流,并创建了一个FILETABLE
,将800多种各种文档转储到该文件夹中,并且一切正常。
为了能够全文索引MS Office文档,我已经安装了MS Filter Pack 2.0,并且要处理PDF文件,我已经下载了Adobe的PDF iFilter并全部安装了它们。
现在,我创建了全文目录:
CREATE FULLTEXT CATALOG DocumentCatalog
WITH ACCENT_SENSITIVITY = OFF
然后是
FILETABLE
表的全文索引:CREATE FULLTEXT INDEX
ON dbo.Documents(name, file_type, file_stream)
KEY INDEX [PK_Document]
ON DocumentCatalog
而且一切似乎都很好。一段时间后,填充我拥有的800多个文档,就可以开始搜索了:
SELECT
stream_id, name, file_type, cached_file_size,
file_stream.GetFileNamespacePath(1)
FROM
dbo.Documents
WHERE
CONTAINS(*, 'Silverlight')
MS Office文档(
*.doc, *.docx, *.ppt, *.pptx, *.xls, *.xlsx
)中包含的内容非常好-并且很快。不幸的是,似乎没有找到PDF文件中的所有文本:-(
有什么想法吗?我在安装过程中没有错误,并且一切似乎都很好-我可以在SQL Server的
.pdf
中看到Filters
文件类型:SELECT *
FROM sys.fulltext_document_types
返回:
.pdf E8978DA6-047F-4E3D-9C78-CDBE46041603
C:\Program Files\Adobe\Adobe PDF iFilter 11 for 64-bit platforms\bin\PDFFilter.dll
11.0.1.36 Adobe Systems, Inc.
但是以某种方式,这些PDF似乎没有被索引。我是否可以找出实际上已对哪些文件进行了索引,以及填充期间是否存在错误?我在哪里可以找到此信息?
最佳答案
我必须使用Adobe iFilter 9而不是11。
ftp://ftp.adobe.com/pub/adobe/acrobat/win/9.x/PDFiFilter64installer.zip
关于pdf - SQL Server 2012-在文件表顶部进行全文搜索-未搜索PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34993405/