在文件列表上全文搜索
使用SQL Server 2012的FILETABLE
功能处理大量Office和PDF文档,并在其上使用全文搜索功能时,我正FILETABLE
处理这些问题。
我将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
表上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中的Filters
中看到.pdf
文件类型:
SELECT *
FROM sys.fulltext_document_types
收益:
.pdf E8978DA6-047F-4E3D-9C78-CDBE46041603
C:Program FilesAdobeAdobe PDF iFilter 11 for 64-bit platformsbinPDFFilter.dll
11.0.1.36 Adobe Systems, Inc.
但不知何故,这些PDF似乎没有被索引。 我能否找出哪些文件实际上是编入索引的,以及是否在群体中出现错误? 我在哪里可以找到这些信息?
链接地址: http://www.djcxy.com/p/55877.html