2
我试图建立全文检索的表Azure的SQL Server全文搜索不会对.DOC的.docx类型
我所做的一切,使其工作:
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'类型没有按预期工作?
如果这样什么原因来设置文件类型?你有没有提及描述这些方法的MSDN? –
提取文本只是一个解决方法 - https://blogs.msdn.microsoft.com/jasonz/2009/08/31/sample-parsing-content-in-c-using-ifilter/ – ErikEJ
谢谢埃里克。 我终于想通了。因此,对于本地SQL Server,我可以为不同类型的文档安装IFilter,并按预期使用它。对于Azure SQL数据库,它不起作用,因为它不支持.doc和.docx类型的文档,我必须使用描述的方法 –