2010-10-25 11 views
5

Sto scrivendo un indicizzatore Lucene.NET personalizzato per abilitare l'indicizzazione dei documenti MS Word. L'indicizzatore deve essere in grado di gestire le ultime tre versioni di MS Word: 2010, 2007 e 2003.Come indicizzare i documenti Word 2003, 2007 e 2010 utilizzando Lucene.NET

Il piano prevede l'utilizzo di assembly di interoperabilità VSTO installati come parte di VS2010 per estrarre il contenuto di testo dai documenti.

Esiste un modo migliore per implementare l'indicizzazione dei documenti di Word? Ciò significa che dovrò installare tutte e tre le versioni di Word sul server? O solo Word 2010?

Strumenti/Ambiente:

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

Nota: Per i dettagli su come per implementare questo, vedere Sitecore text search in PDF or Word documents

risposta

5

È possibile utilizzare i plugin IFilter per consentire di recuperare il contenuto dei documenti e quindi indicizzarli. L'interfaccia è originariamente parte di Microsoft Index Service ma è generalmente disponibile per l'indicizzazione di documenti.

Ho esaminato la tecnologia un paio di anni fa e sembra ricordare che i filtri per i documenti di Office sono stati incorporati in Windows o potrebbero essere installati separatamente dal pacchetto completo di Office, ma potrei sbagliarmi qui.

Ulteriori informazioni sulla tecnologia IFilter su IFilter at Wikipedia e IFilter at MSDN. Dovrai esaminare P/Invoke e potresti trarre ispirazione IFilter at pinvoke.net.

Un campione in C# può essere trovato a MSDN Code Gallery.