Eigentlich wollte ich mal "eben" mit einem SQL Server 2005 PDF-Dateien indizieren, leider erwies sich diese Aufgabe als zeitraubender als ich dachte.... Jedenfalls wenn man das noch nie gemacht hat! Deshalb möchte ich allen mitleidenden folgende Kurzanleitung mit auf den Weg geben:
Wichtig ist, dass ihr den SQL Server 2005 32 Bit benutzt, da viele Nicht-Microsoft IFilter noch 32 Bit Versionen sind (Das war das erste lange Gesicht was ich gemacht habe. Ich weiß, hätte man sich denken können, wenn man 64 Bit benutzt... mach ich jetzt auch
) Einzige mir bekannte (ungetestet) Lösung ist, dass man sich einen COM+ 64 Bit-Wrapper schreibt.
Nun zur Installation:
1. Adobe IFilter runterladen und installieren.
2. Eine Tabelle in der Datenbank einrichten, welche die zu indizierenden Daten enthalten soll.
3. Die Tabelle muss eine eindeutige ID enthalten, eine Spalte vom Typ varbinary, welche die Binärdaten enthält und eine Spalte wo die Dateitypen (Endungen) gespeichert werden, z.B. char(3). Die Dateiendungen (.pdf) müssen ohne "." gespeichert werden.
4. Nun erstellt man einen VolltextKatalog für diese Tabelle und verknüpft die Binärdatenspalte mit der Dateitypen Spalte über den Assistenten.
Und nun kommt die "Magic"
Wenn man gedacht hat, dass nun alles läuft... denkste! (langes Gesicht 2). Da die Adobe IFilter DLL nicht signiert ist muss man dem SQL Server 2005 mitteilen, dass er diese DLL laden soll. Das hat sich gegenüber dem SQL Server 2000 geändert, da musste man nichts weiter einstellen. Die Einstellungen macht man mit folgenden zwei Zeilen im SQL Server Management Studio:
SQL unsignierte IFilter Registrierung -
Copy CodeUse Datenbankname;
go;
exec sp_fulltext_service 'load_os_resources', 1;
exec sp_fulltext_service 'verify_signature', 0;
go;
Detailinfos hier
Danach muss man nur den SQL Server und den Volltextkatalog neustarten, dann klappt es auch mit den PDFs.