2016-12-26 6 views
2

Я пытаюсь настроить полнотекстового поиска для таблицыAzure SQL Server полнотекстового поиска не работает .doc .docx типов

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 

После этого я вставил 2 документа с типами .html 'и' .docx '.

Когда я в поисках

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

он работает, как ожидалось, но когда я делаю то же самое для содержания «.docx», он ничего не возвращает.

Кто-нибудь знает, почему полнотекстовый поиск типа '.docx' или '.doc' не работает должным образом?

ответ

2

База данных Azure SQL полностью текстового поиска не поддерживает «двоичные» форматы файлов, такие как Office и PDF, только текстовые форматы (включая html).

Вы можете извлечь текст из документов Office, программные и сохранить извлеченный текст в полном тексте проиндексирован колонок

+0

Если это так, в чем причина, чтобы установить тип документа? Есть ли у вас ссылка на MSDN, которая описывает этот подход? –

+1

Извлечение текста является лишь обходным путем - https://blogs.msdn.microsoft.com/jasonz/2009/08/31/sample-parsing-content-in-c-using-ifilter/ – ErikEJ

+1

Спасибо Эрик. Я наконец понял. поэтому для локального SQL Server я могу установить IFilters для разных типов документов и использовать его, как я ожидал. Для базы данных Azure SQL она не работает, потому что она не поддерживает типы документов .doc и .docx, и я должен использовать описанный подход –

 Смежные вопросы

  • Нет связанных вопросов^_^