Как загрузить и запросить документы Word / Excel в Marklogic Server?

Я хочу загрузить документы MS Office Word / Excel в Marklogic и запросить их с помощью xquery, как это сделано с документами xml. Но когда я загружаю файлы документов в Marklogic, он загружает их в двоичный формат и показывает ненужные символы при просмотре с помощью консоли запросов. Я попытался загрузить с помощью следующей команды: -

xdmp:document-load("E:\doc\sample.doc", 
    <options xmlns="xdmp:document-load"
             xmlns:http="xdmp:http">
      <format>xml</format>
    </options>)

Но он показывает ошибку, в которой говорится, что документ не закодирован в UTF 8. Я хочу знать, можно ли загружать файлы doc и xls как есть в Marklogic или их нужно преобразовать в формат XML или UTF 8 Encoded перед их загрузкой. Если да, то каков процесс их преобразования. Если нет, то как мы можем запросить их с помощью xquery. Я также хочу знать, необходима ли установка MS Office 2007/2010 для процесса преобразования, потому что и Office 2007, и 2010 поддерживают формат OOXML.

Пожалуйста, дайте мне правильные указания по этому поводу.


person Puneet Pant    schedule 31.05.2012    source источник


Ответы (3)


Ответ Grtjn верен, если вы имеете дело с документами Office в формате до 2007/2010. Для документов 2007/2010 включите конвейер «Office OpenXML ExtractOffice OpenXML Extract» в CPF и перезагрузите документы. Этот конвейер не требует дополнительной опции преобразования. Он загрузит исходный XML как есть.

Документы Office 2007/2010 - это просто файлы .zip, содержащие взаимосвязанные части XML. Этот конвейер распакует любые документы .docx, .xlsx, .pptx и сохранит их составные части в каталоге, названном в честь исходного документа. Каталог будет сохранен как родственник исходного документа и будет связан с источником, поэтому, например, если вы удалите исходный .docx, каталог, содержащий извлеченные части, также будет удален.

Убедитесь, что для базы данных установлено автоматическое создание каталогов. (Это настройка по умолчанию для MarkLogic 5.0 и предыдущих версий).

person wpaven    schedule 31.05.2012
comment
это означает, что могут быть преобразованы только файлы docx, а файлы Office 2003 не могут быть преобразованы? - person Puneet Pant; 01.06.2012
comment
@ puneet-pant Да, вам нужно будет преобразовать ваши файлы .doc в .docx, чтобы иметь возможность правильно обрабатывать их. Если, конечно, вы не решите объединить и мой совет, и совет wpaven. Они могут сосуществовать, поэтому у вас будет естественная поддержка обоих форматов. - person grtjn; 19.06.2012

Они двоичные, поэтому их следует вставлять как двоичные. Но вы хотите, чтобы они преобразовались. MarkLogic может сделать это автоматически. Для этого сделайте следующее:

  • Откройте интерфейс администратора
  • Перейти в соответствующую базу данных
  • Откройте страницу обработки контента
  • Откройте вкладку «Установка», установите для переключателя «Разрешить преобразование» значение «истина» и нажмите «Установить».
  • Проверьте область действия домена, чтобы убедиться, что вы вставляете ее в эту область, например вставлять документы в uri базы данных, который начинается с uri области. (это, скорее всего, означает, что вам нужно добавить параметр uri в xdmp: document-load, который начинается с /)
  • Проверьте конвейеры, чтобы узнать, какие типы контента преобразуются автоматически и в какой формат (чаще всего xhtml или docbook)
  • Перезапустите xdmp: document-load

Платформа обработки контента создаст дополнительные файлы, содержащие результаты преобразования. Обычно это xhtml с текстом, отдельные файлы изображений, если они есть, CSS со свойствами макета и т. Д.

Для этого требуется лицензия с возможностью преобразования.

HTH!

person grtjn    schedule 31.05.2012
comment
Вы имеете в виду, что требуется лицензионная версия Marklogic. И эта функция недоступна в экспресс-версии. Я прав ? - person Puneet Pant; 01.06.2012
comment
@ puneet-pant Это точно не входило в лицензию Сообщества. Но я думаю, что это есть в экспресс-лицензии, как и в некоторых из наиболее распространенных языков. С другой стороны, если вы можете преобразовать их в формат 2007/2010, вы можете следовать отличному совету wpaven по использованию доступных конвейеров для этих форматов. По его словам, для этого не требуется функция преобразования лицензии. - person grtjn; 19.06.2012
comment
Стоит упомянуть более новую функцию xdmp:document-filter, которая также была обернута во встроенные конвейеры преобразования. В отличие, например, от xdmp:pdf-convert, он не прилагает особых усилий для сохранения стиля и макета документа, но может обрабатывать более 200 двоичных форматов. Результатом является XHTML с метаданными, записанными в тегах html: meta. Обычно достаточно для поиска FT по двоичным файлам. - person grtjn; 05.12.2014

OOXML

.doc и .xls - это двоичные файлы, которые не могут обрабатываться процессорами XQuery напрямую.

Используйте OOXML, как вы упомянули. Сохраните файлы как .docx или .xlsx, которые представляют собой заархивированные файлы XML (с некоторыми дополнительными ресурсами, такими как изображения, в zip-папках). Возможно, zip-модуль Marklogic поможет вам распаковать файлы.

Использование MS Office 2003

Это также можно сделать с помощью MS Office 2003 с пакетом совместимости форматов файлов. установлен. Извините, я не могу помочь вам с пакетным преобразованием, но я уверен, что есть способ сделать это с помощью VBA - при необходимости задайте другой вопрос.

person Jens Erat    schedule 31.05.2012