2010-10-25 13 views
5

J'écris un indexeur Lucene.NET personnalisé pour permettre l'indexation de documents MS Word. L'indexeur doit être capable de gérer les trois dernières versions de MS Word: 2010, 2007 et 2003.Comment indexer des documents Word 2003, 2007 et 2010 en utilisant Lucene.NET

Il est prévu d'utiliser des assemblys VSTO interop installés avec VS2010 pour extraire le contenu textuel des documents.

Existe-t-il une meilleure façon d'implémenter l'indexation de document Word? Cela signifie-t-il que je devrai installer les trois versions de Word sur le serveur? Ou juste Word 2010?

Outils/Environnement:

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

Note: Pour plus de détails sur la façon pour mettre en œuvre ceci, voir Sitecore text search in PDF or Word documents

Répondre

5

Vous pouvez utiliser les plugins IFilter pour vous permettre de récupérer le contenu des documents puis de les indexer. L'interface fait à l'origine partie de Microsoft Index Service mais est généralement disponible pour l'indexation de documents. Je me suis penché sur la technologie il y a quelques années et je me souviens que les filtres des documents Office étaient intégrés à Windows ou pouvaient être installés séparément du logiciel Office complet, mais je me trompe peut-être ici. Pour plus d'informations sur la technologie IFilter au IFilter at Wikipedia et IFilter at MSDN. Vous devrez regarder dans P/Invoke et pourrait avoir un peu d'inspiration IFilter at pinvoke.net. Un échantillon en C# peut être trouvé à MSDN Code Gallery.