Как индексировать документы Word 2003, 2007 и 2010 с помощью Lucene.NET - PullRequest
5 голосов
/ 25 октября 2010

Я пишу пользовательский индексатор Lucene.NET для включения индексации документов MS Word. Индексатор должен быть способен обрабатывать три последних выпуска MS Word: 2010, 2007 и 2003.

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

Есть ли лучший способ реализовать индексацию документов Word? Означает ли это, что мне придется установить все три версии Word на сервере? Или просто Word 2010?

Инструменты / Окружающая среда:

  • Lucene.NET 2.3.1.3
  • VS2010 / .NET 3.5
  • Windows 2008 / IIS 7

Примечание: Подробнее о том, как это реализовать, см. Поиск по тексту Sitecore в документах PDF или Word

1 Ответ

5 голосов
/ 30 октября 2010

Вы можете использовать плагины IFilter, чтобы получить содержимое документов и затем проиндексировать их.Интерфейс изначально является частью Microsoft Index Service, но обычно доступен для индексации документов.

Я изучил технологию пару лет назад и, похоже, помнил, что либо фильтры для документов Office были встроены в Windows, либо могут быть установлены отдельно от полного пакета Office, но я могу ошибаться.

Подробнее о технологии IFilter на IFilter в Википедии и IFilter на MSDN .Вам нужно будет заглянуть в P / Invoke и получить вдохновение IFilter на pinvoke.net .

Образец в C # можно найти в Галерея кодов MSDN .

...