Filterhandler, die mit Windows ausgeliefert werden

Microsoft stellt mehrere Standardfilter mit Windows Search bereit. Clients rufen diese Filterhandler auf (bei denen es sich um Implementierungen der IFilter-Schnittstelle handelt), um Text und Eigenschaften aus einem Dokument zu extrahieren.

Dieses Thema ist wie folgt organisiert:

Hinweise zur Windows Search-Implementierung

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, in dem mehrere Add-Ins ausgeführt werden, in nativem Code geschrieben werden.

Windows 7- und 10-Implementierung

In Windows 7 und höher tritt ein neues Verhalten auf, 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 erneut 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 neu indizierte Indizierung von zuvor indizierten Dateien, ohne dass zuvor ein Neustart erforderlich ist, und nutzt alle zuvor registrierten Filterhandler für die Inhaltsindizierung.

Wenn nur ein Filterhandler ohne entsprechenden Eigenschaftenhandler installiert ist, erfolgt die automatische Neuindizierung entweder nach einem Neustart des Indizierungsdiensts oder einem Neustart des Systems.

Eigenschaftenbeschreibungsflags 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 wird durch die Installation eines IFilter - oder Eigenschaftenhandlers keine Neuindizierung vorhandener Elemente initiiert, es sei denn, ein unabhängiger Softwareanbieter (Independent Software Vendor, ISV) ruft explizit eine Neuerstellung oder Neuindizierung übereinstimmender URLs auf.

Es gibt zwei wesentliche Unterschiede zwischen Legacyanwendungen wie dem Indizierungsdienst und neueren Anwendungen wie Windows Search, die Sie beim Implementieren von Filtern beachten sollten:

Für Windows Vista und Windows Search 3.0 und höher ist die Verwendung von IPersistStream aus den folgenden Gründen erforderlich:

  • Um Leistung und zukünftige Kompatibilität sicherzustellen.
  • Um die Sicherheit zu erhöhen. Mit IPersistStream implementierte Filter 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 aus Gründen der Abwärtskompatibilität auch Implementierungen der IPersistFile-Schnittstelle und/oder IPersistStorage-Schnittstelle in Ihre Filter einschließen.

Der zweite große Unterschied besteht darin, dass Windows Vista und Windows Search 3.0 und höher über ein neues Eigenschaftensystem verfügen, das Eigenschaftenhandler verwendet, um Eigenschaften von Elementen aufzulisten.

Es gibt jedoch Zeiten, in denen Sie einen Filter implementieren müssen, der sowohl Inhalte als auch Eigenschaften verarbeitet, um Folgendes zu:

  • Unterstützung älterer MSSearch-Implementierungen.
  • Durchqueren von Links.
  • Behalten Sie Sprachinformationen bei.
  • Rekursiv filtern Sie eingebettete Elemente.

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, enthalten Windows Vista und Windows Search ein neues Eigenschaftensystem, das die Eigenschaften eines Elements kapselt, die vom 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 verarbeiten.

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 bereit. Die IFilter-DLL-Inhalte sind in der folgenden Tabelle zusammengefasst. Wenn Sie auf den Namen eines Filterhandlers klicken, gelangen Sie zur Beschreibung dieser 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-Textdateien – 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 Eigenschafteninformationen aus der Klasse "htmlfiles", sodass sie von Windows Search indiziert werden können. Eine Beschreibung der Zuordnung zwischen IFilter und dem Dateityp finden Sie unter Suchen der IFilter-DLL für eine Datei unter Registrieren von Filterhandlern.

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

   <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 (Eigenschaftsbezeichner, 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 Systemdefinierte Eigenschaften für benutzerdefinierte Dateiformate.

Eigenschaftsbeispiel Zugeordnet zu
meta name="author" content="ruth" Die author-Eigenschaft im Eigenschaftssatz Zusammenfassungsinformationen.
meta name="subject" content="textverarbeitung" Die subject-Eigenschaft im Eigenschaftssatz Zusammenfassungsinformationen.
meta name="keywords" content="fonts, serif" Die Schlüsselwort (keyword)-Eigenschaft im Eigenschaftssatz Zusammenfassungsinformationen.
meta name="ms.category" content="fiction" Die category-Eigenschaft in der Eigenschaft "Zusammenfassungsinformationen" des Dokuments.

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

Aufgabe Aktion Beispiel
Erstellen spezieller Abstracts aus Dateien Verwenden Sie das META NAME="DESCRIPTION"... -Tag, um den IFilter anzuweisen, die Zeichenfolge nach dem CONTENT Schlüsselwort (keyword) als Dokument abstract zu verwenden.

Hinweis:
Der Filterprozess kann Abstracts für jede gefilterte Datei generieren, wobei es sich standardmäßig um einen Satz von Zeichen am Anfang der Datei handeln muss.


<head>
  <META NAME="DESCRIPTION" CONTENT="This text will appear on the results page as the document's summary.">
</head>
 
Verhindern der Filterung einzelner Dateien Fügen Sie der Datei ein Tag hinzu meta name .
  <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 nach einigen Erweiterungen von Dokumenten in Microsoft Office. Dazu gehören z. B. Dateien mit den Erweiterungen .doc, .mdb, .ppt und .xlt.

Nur-Text-Filterhandler

Für 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 keine IFilter-Zuordnung in der Registrierung aufweist, indiziert Windows Search nur die Shell-Eigenschaften für die Datei. Der Benutzer kann jedoch die erweiterten Optionen im Systemsteuerungsbereich Indizierungsoptionen für Indexeigenschaften oder Indexeigenschaften und Dateiinhalte verwenden.

Screenshot des Dialogfelds

Wenn der Benutzer diese Option für einen Dateityp ohne zugeordneten IFilter wählt, 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 Zeichenfolge behandelt. Es wird die Unicode-Bytereihenfolge-Markierung am Anfang der Datei ü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 Attribute.

Weitere Ressourcen

Entwickeln von Filterhandlern

Informationen zu Filterhandlern in Windows Search

Bewährte Methoden zum Erstellen von Filterhandlern in Windows Search

Zurückgeben von Eigenschaften von einem Filterhandler

Implementieren von Filterhandlern in Windows Search

Registrieren von Filterhandlern

Testen von Filterhandlern