Filter für die Volltextsuche

Die Indizierung von Dokumenten in einer Spalte mit dem Datentyp varbinary, varbinary(max), image oder xml erfordert zusätzliche Verarbeitungsschritte. Diese Verarbeitung muss von einem Filter durchgeführt werden. Der Filter extrahiert die Textinformationen aus dem Dokument (hierbei wird die Formatierung entfernt). Der Filter überträgt den Text anschließend an die Komponente für die Wörtertrennung für die Sprache, die der Tabellenspalte zugeordnet ist.

Ein bestimmter Filter ist immer spezifisch für einen bestimmten Dokumenttyp (DOC, PDF, XLS, XML usw.). Diese Filter implementieren die IFilter-Schnittstelle. Weitere Informationen zu diesen Dokumenttypen erhalten Sie, indem Sie die sys.fulltext_document_types-Katalogsicht abfragen.

Binäre Dokumente können in einer einzelnen varbinary(max)- oder image-Spalte gespeichert werden. SQL Server wählt für jedes Dokument anhand der Dateierweiterung den entsprechenden Filter aus. Da die Dateierweiterung nicht sichtbar ist, wenn die Datei in einer varbinary(max)- oder image-Spalte gespeichert wird, muss die Dateierweiterung (DOC, XLS, PDF usw.) in einer separaten Spalte der Tabelle gespeichert werden. Diese wird als Typspalte bezeichnet. Die Typspalte kann einen beliebigen zeichenbasierten Datentyp aufweisen. Sie enthält die Dokumentdateierweiterung, beispielsweise DOC für ein Microsoft Word-Dokument. In der Document-Tabelle in Adventure Works hat die Document-Spalte den Typ varbinary(max), und die Typspalte FileExtension hat den Typ nvarchar(8).

HinweisHinweis

Ein Filter kann ggf. eingebettete Objekte im übergeordneten Objekt behandeln. Dies ist abhängig von der Implementierung des Filters. Filter werden in SQL Server jedoch nicht für das Verfolgen von Links zu anderen Objekten konfiguriert.

SQL Server 2008 installiert seine eigenen XML- und HTML-Filter. Zusätzlich lädt SQL Server auch alle Filter für proprietäre Formate von Microsoft (.doc, .xdoc, .ppt usw.), die bereits auf dem Betriebssystem installiert sind. Um die Filter zu identifizieren, die gerade auf eine Instanz von SQL Server geladen werden, verwenden Sie die gespeicherte Prozedur sp_help_fulltext_system_components wie folgt:

EXEC sp_help_fulltext_system_components 'filter'; 

Bevor Sie Filter für nicht von Microsoft stammende Formate verwenden können, müssen Sie sie jedoch manuell in die Serverinstanz laden. Informationen zum Installieren von zusätzlichen Filtern finden Sie unter Vorgehensweise: Ändern der Liste mit registrierten Wörtertrennungen und Filtern (Transact-SQL).

So zeigen Sie die Typspalte in einem vorhandenen Volltextindex an