In einem Großteil unserer Microsoft Office SharePoint Server 2007 Infrastrukturprojekte gehört es zur Aufgabenstellung, die Office Server Suche zu konfigurieren. Solange es lediglich darum geht, die Metadaten von Dokumenten oder Metadaten und Inhalte von Microsoft Dateitypen zu indizieren, helfen SharePoint Boardmittel bzw. das Microsoft Filter Pack weiter.
Nicht selten sollen jedoch auch Quellen indiziert werden, die einen großes Aufkommen an Dokumenten in Adobe's Portable Document Format (PDF) aufweisen. Wie für jeden weiteren Dateityp ist zur Indizierung ein sogenannter IFilter vonnöten. Im Falle von *.pdf-Dateien ist dieser von einem Dritthersteller separat zu erwerben, da Microsoft keinen eigenen pdf-IFilter bereitstellt.
Am weitesten verbreitet sind hier die Lösungen von Adobe und Foxit Software. Während der Adobe IFilter kostenfrei verfügbar ist, fallen für den Foxit IFilter Lizenzgebühren je Prozessorkern an. Hinsichtlich der Performance unterscheiden sich diese beiden IFilter jedoch deutlich. So ist nach verschiedenen Tests von Microsoft Bloggern der Foxit IFilter in der 32-Bit Variante etwa viermal und in der 64-Bit Variante sogar etwa fünfmal so schnell wie der Adobe IFilter.
Zusätzlich sind bei unseren Recherchen nach dem vermeintlich besten IFilter jedoch auf einen Filter der Münchener PDFlib GmbH gestoßen, für deren IFilter Implementierung keine Performance Ergebnisse aufzuspüren waren.
Grund genug, diese drei IFilter einmal selbst auf ihre Performance hin zu überprüfen.
Das Test Setup
Um die Leistungsfähigkeit vergleichen zu können, sollen alle drei IFilter auf identischer Hardware getestet werden. Zu diesem Zwecke wurde eine virtuelle Hyper-V Maschine mit zwei virtuellen Prozessoren und 4GB RAM verwendet. Als Betriebssystembasis kommt Windows Server 2008 Standard mit Service Pack 1 zum Einsatz. Als SharePoint Server Version wurde 2007 Service Pack 1 mit dem kummulativem Update von Februar 2009 verwendet.
Indiziert wurden jeweils dieselben 1022 Dokumente - sowohl deutschen als auch englischen Inhalts - mit einem Datenvolumen von ca. 1,8 GB.
Es wurden die Standardeinstellungen der jeweiligen IFilter verwendet.
Die Dauer der Indizierung wurde in jeweils zwei Durchläufen erhoben und das jeweils beste Ergebnis gewertet.
Das Testergebnis
IFilter | Version | Indizierte Dokumente | Warnungen | Fehler | Dauer der Indizierung | Indizierung MB/sec |
Adobe | 9.0.0.0 | 1023 | 0 | 0 | 00:43:54 | 0,70 |
Foxit | 1.0.0.2411 | 1018 | 0 | 5 | 00:04:42 | 6,54 |
PDFlib | 3.0.0.0 | 1013 | 5 | 5 | 00:04:41 | 6,56 |
Die Lizenzkosten im Vergleich
IFilter | Lizenzkosten | Prozessorkerne inklusive | Je weiterem Prozessorkern | Entwicklungs- und Testsysteme |
Adobe | kostenfrei | | | |
Foxit | 329,99$ | 2 | 129,99$ | 230,99$ (bis zwei Kerne) 129,99$ je weiterem Kern |
PDFlib | 395€ | Alle Kerne einer Maschine | | inklusive |
Stand: 11.05.2009, alle Angaben ohne Gewähr.
Fazit
Der Adobe IFilter ist zwar kostenfrei, seine Indizierungsleistung lässt jedoch auch stark zu wünschen übrig. Nahezu gleichauf liegen die IFilter von Foxit und PDFlib. Eine Basis-Überprüfung der Indizierungsergebnisse lässt keine Aussage zu Qualitätsunterschieden der Indizierung zu. Demnach kann man die Entscheidungskriterien für einen IFilter auf das Datenvolumen, die Kosten und die persönlichen Vorlieben reduzieren.
Bei einem großen Volumen an zu indizierenden PDF Dokumenten ist insbesondere dann eine der kostenpflichtigen Varianten zu empfehlen, sofern der Indexserver kein dedizierter Server ist, sondern diese Aufgabe von einem Web-FrontEnd Server zusätzlich übernommen wird. Denn die Indizierung beansprucht viel CPU-Zeit und sollte diese möglichst effizient verwerten.
Bei mehr als zwei CPU-Kernen oder falls zusätzlich ein Entwicklungs- oder Testsystem mit mehr als einem Kern PDF-Dokumente indizieren soll, ist der PDFlib IFilter die kostengünstigste Variante.