Импортирование документов Word в SQL Server

Источник: realcoding

Импортирование документов Word в SQL Server

Вопрос: Я хочу загрузить документы Microsoft Word в базу данных SQL Server, проиндексировать их и впоследствии использовать в реляционных запросах. Как это сделать?

Ответ: SQL Server позволяет выполнять импорт документов Word несколькими различными способами. Мы рассмотрим наиболее общие методики. Перед тем, как начать загрузку документов, нужно создать столбец, в котором будут храниться данные типа Image. После этого импортировать документы в SQL Server можно с помощью утилиты командной строки textcopy.exe, которая считывает image-файлы в базу данных. Чтобы получить представление о работе этой утилиты, наберите  textcopy /? . Другой подход для загрузки документов Word в SQL Server заключается в написании программного кода с использованием интерфейса ADO Stream. Пример подобного кода приводится в статье Microsoft "HOWTO: Access and Modify SQL Server BLOB Data by Using the ADO Stream Object" (http://support.microsoft.com/?kbid=258038).

Как вариант, можно переместить двоичные данные в SQL Server. В статье Microsoft "HOWTO: Retrieve and Update a SQL Server Text Field Using ADO" (http://support.microsoft.com/?kbid=180368) подробно разъясняется, как это сделать. При этом вы можете сохранять отдельные фрагменты данных и контролировать их формат. Например, если нужно сохранить только байты с 1000 по 1010, импортирование бинарных данных выполняется во много раз быстрее, чем с помощью интерфейса ADO Stream, поскольку SQL Server не должен считывать с диска весь документ Word. Нередко такая техника используется для сохранения бит-масок, представляющих собой включенные и выключенные настройки документа.

SQL Server 2000 поставляется с примером кода, демонстрирующим, как перемещать бинарные данные. Для просмотра этого кода обратитесь в каталог %Program Files%\Microsoft SQL Server\80\Tools\DevTools\Samples\ado, куда помещаются примеры программ с дистрибутивного компакт-диска SQL Server 2000. Затем перейдите в каталог Visual Basic (VB) для поиска подкаталога Samples. В примере Employee обратите внимание, как именно используется функция FillDataFields().

Для индексации документов Word в версии SQL Server 7.0 (и более поздних версиях) используется компонент полнотекстового поиска, в котором реализована смесь технологий индексации больших объемов текстовых данных и данных типа Image. При выполнении полнотекстового поиска нужно указать, файлы какого типа хранятся в столбце image и какой фильтр нужен для извлечения полезной информации из бинарных данных. Дополнительная информация об использовании полнотекстового поиска приводится в SQL Server  Books Online (BOL) . Надо иметь в виду, что индексирование документов Word не приводит к созданию таблиц, состоящих из ключевых слов документов Word. Однако в процессе индексирования таких файлов появляется возможность учесть документы Word при обращении к функциям поиска. Ниже приводятся способы извлечения ключевых слов из набора данных:

  • Используйте OLE Automation для чтения заданных ключевых слов. Сохраните эти ключевые слова в реляционных таблицах одновременно с загрузкой документа.

  • Используйте OLE Automation для открытия документа и его сохранения в текстовом формате (.txt). Для извлечения слов, представляющих особый интерес, обработайте содержимое файла специально написанным обработчиком - программой, которая считывает каждое слово документа, устраняет "шум" (например, предлоги, союзы) и сохраняет значащие уникальные слова вместе со счетчиком повторения каждого такого слова.

  • Выполните поиск для вновь проиндексированных документов на предмет обнаружения заданных слов, после чего внесите эти слова в реляционные таблицы.

    SQL Server 2000 располагает несколькими утилитами и интерфейсами, с помощью которых можно быстро загрузить документы в базу, выполнить поиск нужной информации и извлечь двоичные документы Microsoft Office


  • Страница сайта http://test.interface.ru
    Оригинал находится по адресу http://test.interface.ru/home.asp?artId=29944