Как да индексирате документи на Word 2003, 2007 и 2010 с помощта на Lucene.NET

Пиша персонализиран индексатор на 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 документи


person Arnold Zokas    schedule 25.10.2010    source източник


Отговори (1)


Бихте могли да използвате добавките IFilter, за да ви позволи да извлечете съдържанието на документите и след това да ги индексирате. Интерфейсът първоначално е част от Microsoft Index Service, но обикновено е достъпен за индексиране на документи.

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

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

Пример в C# може да бъде намерен в MSDN Code Gallery .

person HakonB    schedule 30.10.2010