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
- Windows Search-Filter
- Weitere Ressourcen
- Zugehörige Themen
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:
- Verwendung der IPersistStream-Schnittstelle .
- Verwendung von Eigenschaftshandlern.
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: |
|
|
Verhindern der Filterung einzelner Dateien | Fügen Sie der Datei ein Tag hinzu meta name . |
|
|
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). |
|
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.
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
- Das auf GitHub verfügbare IFilterSample-Codebeispiel veranschaulicht das Erstellen einer IFilter-Basisklasse zum Implementieren der IFilter-Schnittstelle.
- Eine Übersicht über den Indizierungsprozess finden Sie unter Der Indizierungsprozess.
- Eine Übersicht über Dateitypen finden Sie unter Dateitypen.
- Informationen zum Abfragen von Dateizuordnungsattributen für einen Dateityp finden Sie unter PerceivedTypes, SystemFileAssociations und Anwendungsregistrierung.
Verwandte Themen
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