我正在尝试设置表
的全文搜索我尽一切努力使其发挥作用:
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'类型无法按预期工作?
答案 0 :(得分:2)
Azure SQL数据库全文搜索不支持"二进制"文件格式如Office和PDF,只有文本格式(包括html)。
您可以通过编程方式从Office文档中提取文本,并将提取的文本存储在全文索引列中