通过SQL Server 2012的FILETABLE
功能处理大量Office和PDF文档,并在其上使用全文搜索,我已经不知所措了。
我已经将我的SQL Server配置为支持全文搜索和文件流,并且我创建了一个FILETABLE
,将所有类型的800多个文档转储到该文件夹中,并且一切正常。
为了能够使用全文索引MS Office文档,我安装了MS Filter Pack 2.0,为了处理PDF文件,我已经下载了Adobe的iFilter for PDF并安装了所有文件。
现在我已经创建了一个全文目录:
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似乎没有编入索引。我是否可以找出实际编入索引的文件,以及人口中是否存在错误?我在哪里可以找到这些信息?
答案 0 :(得分:0)
我必须使用Adobe iFilter 9而不是11。
ftp://ftp.adobe.com/pub/adobe/acrobat/win/9.x/PDFiFilter64installer.zip