Filterhandler, die mit Windows ausgeliefert werden

Microsoft stellt mehrere Standardfilter mit Windows Search zur Versorgung mit. Clients rufen diese Filterhandler (die Implementierungen der IFilter-Schnittstelle sind) auf, um Text und Eigenschaften aus einem Dokument zu extrahieren.

Dieses Thema ist wie folgt organisiert:

Windows Search-Implementierungshinweise

In Windows 7 und höher werden filter, die in verwaltetem Code geschrieben wurden, explizit blockiert. Filter müssen aufgrund potenzieller CLR-Versionsverwaltungsprobleme mit dem Prozess geschrieben werden, in dem mehrere Add-Ins ausgeführt werden.

Implementierung von Windows 7 und 10

In Windows 7 und höher gibt es ein neues Verhalten, das beim Registrieren eines Filterhandlers, Eigenschaftenhandlers oder einer neuen Erweiterung auftritt. Wenn ein neuer Eigenschaftenhandler und/oder Filterhandler installiert wird, werden Dateien mit den entsprechenden Erweiterungen automatisch neu indiziert.

In Windows 7 und höher wird empfohlen, einen Filterhandler in Verbindung mit den entsprechenden Eigenschaftenhandlern zu installieren und den Filterhandler vor dem Eigenschaftenhandler zu registrieren. Die Registrierung des Eigenschaftenhandlers initiiert eine sofortige erneute Indizierung von zuvor indizierten Dateien, ohne zuerst einen Neustart zu erfordern, und nutzt alle zuvor registrierten Filterhandler zum Zweck der Inhaltsindizierung.

Wenn nur ein Filterhandler ohne einen entsprechenden Eigenschaftenhandler installiert wird, erfolgt die automatische Erneute Indizierung entweder nach einem Neustart des Indizierungsdiensts oder einem Neustart des Systems.

Eigenschaftenbeschreibungskennzeichnungen für Windows 7 finden Sie in den folgenden Referenzthemen: GETPROPERTYSTOREFLAGS, PROPDESC_COLUMNINDEX_TYPE und PROPDESC_SEARCHINFO_FLAGS.

Windows Vista-Implementierung

In Windows Vista und früheren Versionen initiiert die Installation eines IFilter - oder Eigenschaftenhandlers keine erneute Indizierung vorhandener Elemente, es sei denn, ein unabhängiger Softwareanbieter (ISV) ruft explizit eine Neuerstellung oder erneute Indizierung übereinstimmender URLs auf.

Es gibt zwei wichtige Unterschiede zwischen älteren Anwendungen wie Indexing Service und neueren Anwendungen wie Windows Search, die Sie beim Implementieren von Filtern beachten sollten:

Zunächst erfordern Windows Vista und Windows Search 3.0 und höher die Verwendung von IPersistStream aus den folgenden Gründen:

  • Um die Leistung und zukünftige Kompatibilität sicherzustellen.
  • Um die Sicherheit zu erhöhen. Filter, die mit IPersistStream implementiert werden, sind sicherer, da der Kontext, in dem der Filter ausgeführt wird, nicht die Rechte zum Öffnen von Dateien auf dem Datenträger oder über das Netzwerk benötigt.

Während Windows Search nur IPersistStream verwendet, können Sie auch IPersistFile Interface - und/oder IPersistStorage-Schnittstellenimplementierungen in Ihre Filter zur Abwärtskompatibilität einschließen.

Der zweite hauptunterschied besteht darin, dass Windows Vista und Windows Search 3.0 und höher über ein neues Eigenschaftensystem verfügen, das Eigenschaftenhandler zum Aufzählen von Eigenschaften von Elementen verwendet.

Es gibt jedoch Situationen, in denen Sie einen Filter implementieren müssen, der sowohl Inhalte als auch Eigenschaften behandelt, um:

  • Unterstützen Sie ältere MSSearch-Implementierungen.
  • Durchqueren von Verknüpfungen.
  • Sprachinformationen beibehalten.
  • Rekursiv eingebettete Elemente filtern.

In diesen Situationen benötigen Sie eine vollständige Filterimplementierung, einschließlich der IFilter::GetValue-Methode , um auf Eigenschaftswerte zuzugreifen.

Legacyimplementierung

Wie bereits erwähnt, enthält Windows Vista und die Windows-Suche ein neues Eigenschaftensystem, das die Eigenschaften eines Elements kapselt, die von dem Inhalt eines Elements getrennt sind. Dieses Eigenschaftensystem ist in früheren Versionen von Microsoft Windows Desktop Search (WDS) 2.x nicht vorhanden. Wenn Ihr Filter andere Anwendungen wie oben beschrieben unterstützen muss, muss er möglicherweise sowohl Inhalte als auch Eigenschaften behandeln.

Weitere Informationen zum Entwickeln eines kompatiblen Filters finden Sie in den folgenden Themen, IFilter (für Legacyanwendungen) und Entwickeln von Filter-Add-Ins (für Legacyanwendungen).

Windows Search-Filter

Microsoft stellt mehrere Standardfilter mit Windows Search zur Versorgung mit. Die IFilter-DLL-Inhalte werden in der folgenden Tabelle zusammengefasst. Wenn Sie auf den Namen eines Filterhandlers klicken, gelangen Sie zur Beschreibung für diese IFilter-Implementierung .

Filterhandler Gefilterte Dateien IFilter DLL
MIME-Filterhandler Multipurpose Internet Mail Extension (MIME) mimefilt.dll
HTML-Filterhandler HTML 3.0 oder früher nlhtml.dll
Dokumentfilterhandler Microsoft Word, Excel, PowerPoint offfilt.dll
Nur-Text-Filterhandler Nur-Text-Dateien – Standard-IFilter query.dll
Binär- oder Nullfilterhandler Binärdateien - Null-IFilter query.dll

MIME-Filterhandler

Der MIME-Filterhandler (in mimefilt.dll) extrahiert Text- und Eigenschaftsinformationen aus Dateien mit den Erweiterungen .eml, MHT und MHTML.

HTML-Filterhandler

Der HTML-Filterhandler (in nlhtml.dll) extrahiert Text- und Eigenschaftsinformationen aus der Klasse "htmlfiles", sodass er von der Windows-Suche indiziert werden kann. Eine Beschreibung der Zuordnung zwischen IFilter und Dateityp finden Sie unter "Suchen der IFilter-DLL für eine Datei" in der Registrierung von Filterhandlern.

Sie können das META Tagfeature von HTML-Dokumenten verwenden, um spezielle Verarbeitungsanforderungen an den HTML-IFilter zu übermitteln. META Tags treten am Anfang einer HTML-Datei innerhalb der HEAD ... /HEAD Tags auf, wie im folgenden Beispiel dargestellt.

   <head>
     <META NAME="DESCRIPTION"
           CONTENT="This text appears on the results page as the document's summary.">
   </head>

Einige HTML-Tags META werden automatisch bekannten Eigenschaftensatz- und Eigenschafts-ID-Werten (Property Identifier, PID) zugeordnet, sodass Abfragen für diese Eigenschaften den zugeordneten Inhalt durchsuchen. Einige Beispiele sind in der folgenden Tabelle aufgeführt. Eine Liste der Systemeigenschaften, die Sie für Ihre Dateiformate verwenden können, finden Sie unter System-Defined Eigenschaften für benutzerdefinierte Dateiformate.

Beispiel für Eigenschaft Zugeordnet zu
meta name="author" content="ruth" Die Author-Eigenschaft im Eigenschaftensatz "Zusammenfassungsinformationen".
meta name="subject" content="word processing" Die Subject-Eigenschaft im Eigenschaftensatz "Zusammenfassungsinformationen".
meta name="keywords" content="fonts, serif" Die Schlüsselworteigenschaft im Eigenschaftensatz "Zusammenfassungsinformationen".
meta name="ms.category" content="fiction" Die Kategorieeigenschaft im Eigenschaftensatz "Zusammenfassungsinformationen" des Dokuments.

Einige Features des HTML-IFilters sind in der folgenden Tabelle aufgeführt.

Aufgabe Maßnahme Example
Erstellen spezieller Abstracts aus Dateien Verwenden Sie das META NAME="DESCRIPTION"... Tag, um den IFilter anzuweisen, die Zeichenfolge nach dem CONTENT Schlüsselwort als Dokumentstraktion zu verwenden.

Note:
Der Filtervorgang kann Abstraktionen für jede gefilterte Datei generieren, die standardmäßig eine Reihe von Zeichen am Anfang der Datei sein soll.


<head>
  <META NAME="DESCRIPTION" CONTENT="This text will appear on the results page as the document's summary.">
</head>
 
Verhindern, dass einzelne Dateien gefiltert werden Fügen Sie der Datei ein meta name Tag hinzu.
  <meta name="robots" content="noindex">
Festlegen des Sprachcodes für eine Datei (um sicherzustellen, dass das System die richtigen Sprachworttrennungen und Rauschwortdateien auswäht) Fügen Sie der Datei das folgende meta name Tag hinzu, wobei das Inhaltsfeld den entsprechenden Sprachcode angibt (entweder in Zeichen oder mithilfe des Gebietsschemawerts).
<meta name="ms.locale" content="EN">
<meta name="ms.locale" content=1033>

Dokumentfilterhandler

Der Dokumentfilterhandler (in offilt.dll) filtert Dateien für einige Erweiterungen von Dokumenten in Microsoft Office. Dazu gehören z. B. Dateien mit den Erweiterungen .doc, .mdb, .pptund XLT.

Nur-Text-Filterhandler

Bei Nur-Text-Dateien verwendet Windows Search den Textfilterhandler, der sowohl die Systemeigenschaften (z. B. Dateinamen) als auch den Inhalt einer Datei filtert. Wenn ein Dateityp nicht über eine IFilter-Zuordnung in der Registrierung verfügt, indiziert Windows Search nur die Shell-Eigenschaften für die Datei. Der Benutzer kann jedoch die erweiterten Optionen im Steuerelement "Indizierungsoptionen" verwenden, um Eigenschaften oder Indexeigenschaften und Dateiinhalte zu indexieren.

Screenshot des Dialogfelds

Wenn der Benutzer diese Option für einen Dateityp ohne zugeordneten IFilter auswähnt, wird der Textfilterhandler verwendet, um den Inhalt der Datei zu extrahieren. Der Textfilterhandler versteht kein Dokumentformat; Beim Filtern des Inhalts einer Datei wird die Datei als Abfolge von Zeichen behandelt. Es wird am Anfang der Datei auf das Unicode-Bytereihenfolgezeichen überprüft.

Binär- oder Nullfilterhandler

Wenn eine registrierte Binärdatei gefunden wird, wird der NULL-Filterhandler verwendet. Der NULL-Filterhandler ruft nur die Systemeigenschaften ab. Der Inhalt einer Binärdatei wird nicht gefiltert. Beispiele für Systemeigenschaften sind FileName, LastWriteTime, FileSize und Attributes.

Weitere Ressourcen

Entwickeln von Filterhandlern

Informationen zu Filterhandlern in der Windows-Suche

Bewährte Methoden zum Erstellen von Filterhandlern in der Windows-Suche

Zurückgeben von Eigenschaften aus einem Filterhandler

Implementieren von Filterhandlern in der Windows-Suche

Registrieren von Filterhandlern

Testen von Filterhandlern