Azure SQL Server全文搜索不适用于.doc .docx类型

时间:2016-12-26 18:52:30

标签: c# azure-sql-database sql-server-2016

我正在尝试设置表

的全文搜索

DocumentBody

我尽一切努力使其发挥作用:

EXEC sp_fulltext_catalog 'DocumentsCatalog', 'create';
EXEC sp_fulltext_catalog 'DocumentsCatalog', 'start_full'
EXEC sp_fulltext_table 'dbo.DocumentBody', 'create', 'DocumentsCatalog',  'PK_DocumentBody'
EXEC sp_fulltext_column 'dbo.DocumentBody', 'Value', 'add', 0, 'Type'
EXEC sp_fulltext_table 'dbo.DocumentBody', 'start_change_tracking'
EXEC sp_fulltext_table 'dbo.DocumentBody', 'update_index'

另外为了防止我的数据库支持这些类型的文档的问题我做了:

SELECT * 
FROM sys.fulltext_document_types 
WHERE document_type IN ('.doc', '.docx', '.html')

输出:

document_type |class_id                            | path    |version       |manufacturer
--------------|------------------------------------|---------|--------------|-----------------------
.doc          |64F1276A-7A68-4190-882C-5F14B7852019|    NULL |              |
.docx         |5A98B233-3C59-4B31-944C-0E560D85E6C3|    NULL |              |
.html         |E0CA5340-4534-11CF-B952-00AA0051FE20|    NULL |  12.0.6828.0 | Microsoft Corporation

之后我插入了两个类型为“.html”和“.docx”的文档。

当我搜索

SELECT *
FROM DocumentBody 
WHERE CONTAINS([Value], 'some html content')

它按预期工作,但是当我对'.docx'内容做同样的事情时,它什么都不返回。

有谁知道为什么全文搜索'.docx'或'.doc'类型无法按预期工作?

1 个答案:

答案 0 :(得分:2)

Azure SQL数据库全文搜索不支持"二进制"文件格式如Office和PDF,只有文本格式(包括html)。

您可以通过编程方式从Office文档中提取文本,并将提取的文本存储在全文索引列中