Mit Volltext-Suche mit PDF-Dateien in SQL Server 2005
Ich habe ein seltsames problem mit der Indizierung von PDF-Dateien in SQL Server 2005, und hoffe, mir kann jemand helfen. Meine Datenbank hat eine Tabelle namens MediaFile mit den folgenden Feldern - MediaFileId int identity pk, FileContent Bild, und Dateierweiterung varchar(5). Ich habe meine web-Anwendung speichern der Inhalt der Datei in diese Tabelle ohne Probleme, und bin in der Lage, verwenden Sie die Volltextsuche auf doc, xls, etc ohne Probleme - nur die Datei-Erweiterung nicht funktioniert, ist die PDF-Datei. Bei der Durchführung von volltextsuchen in dieser Tabelle für die Worte, die ich weiß, gibt es in der PDF-Dateien gespeichert in der Tabelle sind diese Dateien nicht in den Suchergebnissen zurückgegeben.
Das OS ist Windows Server 2003 SP2, und ich habe installiert Adobe iFilter 6.0. Folgen Sie den Anweisungen auf dieser blog-Eintrag, ich ausgeführt die folgenden Befehle:
exec sp_fulltext_service 'load_os_resources', 1;
exec sp_fulltext_service 'verify_signature', 0;
Nachdem dieser neu gestartet ich den SQL Server, und verifiziert, dass die iFilter für das PDF-Erweiterungen korrekt installiert ist, indem Sie den folgenden Befehl ausführen:
select document_type, path from sys.fulltext_document_types where document_type = '.pdf'
Dieser gibt die folgenden Informationen zurück, die korrekt aussieht:
document_type: .pdf
Pfad: C:\Program Dateien\Adobe PDF IFilter 6.0\PDFFILT.dll
Dann habe ich (wieder)erstellt den index auf das MediaFile Tabelle auswählen, FileContent, als die Spalte zu indizieren und die FileExtension als seinen Typ. Der Assistent erstellt den index und erfolgreich abgeschlossen. Um zu testen, ich bin der Durchführung einer Suche wie dieser:
SELECT MediaFileId, FileExtension FROM MediaFile WHERE CONTAINS(*, '"house"');
Zurück DOC-Dateien, die enthalten mit diesem Begriff, aber nicht alle PDF-Dateien, obwohl ich weiß, dass es definitiv von PDF-Dateien in der Tabelle, die das Wort enthalten Haus.
Übrigens, ich habe diese Arbeit einmal für ein paar Minuten, in denen die Suche oben kehrte die richtigen PDF-Dateien, aber dann es gerade aufgehört zu arbeiten wieder ohne ersichtlichen Grund.
Alle Ideen, was könnte das anhalten der SQL Server 2005-von der Indizierung der PDF ' s, auch wenn Adobe iFilter installiert ist und angezeigt wird, geladen werden?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dank Ivan. Schafften es schließlich diese Arbeit ab alles von Grund auf. Es scheint, wie die Reihenfolge, in der Dinge getan werden, macht einen großen Unterschied, und die Ratschläge, die auf den verlinkten blog zum ausschalten der 'load_os_resources' - Einstellung nach dem laden der iFilter ist wahrscheinlich nicht die beste option, da dadurch die iFilter nicht geladen werden, wenn der SQL Server neu gestartet wird.
Wenn ich mich Recht erinnere, ist die Reihenfolge der Schritte, die schließlich für mich gearbeitet wurde wie folgt:
Obwohl dies hat den trick, ich bin mir ziemlich sicher, dass ich diese Schritte durchgeführt, ein paar mal, bevor es schließlich angefangen zu arbeiten, richtig.
programatically
? 2.) créate full-text-indexprogramatically
? 3.) die komplettes re-indexprogramatically
?Nur hab ich kämpfte mit ihm für eine Stunde, aber schließlich habe es funktioniert. Ich Tat alles, was Sie getan haben, so versuchen Sie einfach, vereinfachen Sie die Abfrage (habe ich ersetzt
*
mit Feldname und entfernt doppelte Anführungszeichen auf Begriff):Auch wenn Sie die full-text-index-stellen Sie sicher, dass Sie die Sprache angeben. Und die Letzte Sache ist, vielleicht können Sie versuchen, ändern Sie das Feld Typ aus
Image
zuvarbinary(MAX)
.