Übersicht über Windows Search

Windows Search ist eine Desktop-Suchplattform mit Sofortsuchfunktionen für die meisten gängigen Datei- und Datentypen, und Drittentwickler können diese Funktionen auf neue Datei- und Datentypen erweitern.

Dieses Thema ist wie folgt organisiert:

Einführung

Windows Search ist eine Standardkomponente von Windows 7 und Windows Vista und ist standardmäßig aktiviert. Windows Search ersetzt Windows Desktop Search (WDS), die als Add-In für Windows XP und Windows Server 2003 verfügbar war.

Windows Search besteht aus drei Komponenten:

Windows Search-Dienst

WSS organisiert die extrahierten Funktionen einer Sammlung von Dokumenten. Das Windows Search-Protokoll ermöglicht es einem Client, mit einem Server zu kommunizieren, auf dem ein WSS gehostet wird, sowohl um Abfragen zu stellen als auch um einem Administrator die Verwaltung des Indexierungsservers zu ermöglichen. Bei der Verarbeitung von Dateien analysiert WSS eine Reihe von Dokumenten, extrahiert nützliche Informationen und organisiert dann die extrahierten Informationen, sodass Eigenschaften dieser Dokumente als Reaktion auf Abfragen effizient zurückgegeben werden können.

Eine Sammlung von Dokumenten, die abgefragt werden können, umfasst einen Katalog, der die höchste Organisationseinheit in Windows Search ist. Ein Katalog stellt eine Reihe von indizierten Dokumenten dar, die abgefragt werden können. Ein Katalog besteht aus einer Eigenschaftstabelle, in deren Spalten der Text oder Wert und der entsprechende Ort (Gebietsschema) gespeichert sind. Jede Zeile der Tabelle entspricht einem separaten Dokument im Bereich des Katalogs und jede Spalte der Tabelle entspricht einer Eigenschaft. Ein Katalog kann einen invertierten Index (für schnelle Wortabgleich) und einen Eigenschaftscache (zum schnellen Abrufen von Eigenschaftswerten) enthalten.

Der Indexer-Prozess ist als Windows-Dienst implementiert, der im LocalSystem-Konto läuft und immer für alle Benutzer läuft (auch wenn kein Benutzer angemeldet ist), wodurch Windows Search Folgendes erreichen kann:

  • Einen Index, der für alle Benutzer freigegeben ist.
  • Beibehalten von Sicherheitsbeschränkungen für den Zugriff auf Inhalte.
  • Verarbeiten von Remote-Abfragen von Clientcomputern im Netzwerk.

Der Suchdienst wurde entwickelt, um die Benutzererfahrung und die Systemleistung beim Indizieren zu schützen. Die folgenden Bedingungen führen dazu, dass der Dienst die Indizierung drosselt oder unterbricht:

  • Hohe CPU-Auslastung durch nicht suchbezogene Prozesse.
  • Hohe System-E/A-Rate, einschließlich Dateilese- und -schreibvorgänge, Auslagerungs- und Dateicache-E/A sowie E/A für zugeordnete Dateien.
  • Geringe Arbeitsspeicherverfügbarkeit.
  • Geringe Akkulebensdauer.
  • Geringer Speicherplatz auf dem Laufwerk, auf dem der Index gespeichert wird.

Entwicklungsplattform

Die bevorzugte Methode für den Zugriff auf die Such-APIs und das Erstellen von Windows Search-Anwendungen erfolgt über eine Shelldatenquelle. Eine Shell-Datenquelle ist eine Komponente, die verwendet wird, um den Shell-Namespace zu erweitern und Elemente in einem Datenspeicher verfügbar zu machen. Ein Datenspeicher ist ein Repository von Daten. Ein Datenspeicher kann für das Shell-Programmiermodell als Container verfügbar gemacht werden, der eine Shell-Datenquelle verwendet. Die Elemente in einem Datenspeicher können mithilfe eines Protokollhandlers vom Windows Search-System indiziert werden.

Beispielsweise ist ISearchFolderItemFactory eine Komponente, die Instanzen der Datenquelle des Suchordners erstellen kann. Dabei handelt es sich um eine Art „virtuelle“ Datenquelle, die von der Shell bereitgestellt wird, die Abfragen über andere Datenquellen im Shell-Namespace ausführen und Ergebnisse auflisten kann. Dies kann entweder mithilfe des Indexers oder durch manuelles Aufzählen und Überprüfen von Elementen in den angegebenen Bereichen ausgeführt werden. Diese Schnittstelle ermöglicht es Ihnen, die Parameter der Suche mithilfe von Methoden einzurichten, die Suchordner erstellen und ändern. Wenn Methoden dieser Schnittstelle nicht aufgerufen werden, werden stattdessen Standardwerte verwendet.

Der Zugriff auf die Windows Search-Funktion über das Shelldatenmodell wird bevorzugt, da er Zugriff auf die volle Shellfunktionalität auf der Ebene des Shelldatenmodells bietet. Sie können z. B. den Bereich einer Suche auf eine Bibliothek festlegen (die in Windows 7 und höher verfügbar ist), um die Bibliotheksordner als Bereich der Abfrage zu verwenden. Windows Search aggregiert dann die Suchergebnisse von diesen Speicherorten, wenn sie sich in verschiedenen Indizes befinden (wenn sich die Ordner auf verschiedenen Computern befinden). Die Shelldatenschicht erstellt auch eine umfassendere Ansicht der Eigenschaften von Artikeln, indem sie einige Eigenschaftswerte zusammenfasst. Außerdem bietet sie Zugriff auf Suchfunktionen für Datenspeicher, die nicht von Windows Search indiziert werden. So können Sie beispielsweise USB-Speichergeräte (Universal Serial Bus), tragbare Geräte, die das MTP-Protokoll verwenden, oder einen FTP-Server (File Transfer Protocol) über die Shelldatenquellen durchsuchen, die den Zugriff auf diese Speichersysteme ermöglichen. Dadurch wird eine bessere Benutzererfahrung gewährleistet.

Windows Search verfügt über einen Cache von Eigenschaftswerten, die in der Implementierung des Windows Search-Diensts (WSS) verwendet werden. Diese Eigenschaftswerte können programmgesteuert mithilfe des Windows Search OLE DB-Anbieters oder über ISearchFolderItemFactory abgefragt werden, der Elemente in Suchergebnissen und abfragebasierten Ansichten darstellt. Windows Search sammelt und speichert dann Eigenschaften, die von Filterhandlern oder Eigenschaftenhandlern ausgegeben werden, wenn ein Element wie ein Word-Dokument indiziert wird. Dieser Speicher wird verworfen und neu erstellt, wenn der Index neu erstellt wird.

Drittanbieterentwickler können Anwendungen erstellen, welche die Daten im Index über programmgesteuerte Abfragen nutzen und die Daten im Index erweitern, damit benutzerdefinierte Datei- und Elementtypen von Windows Search indiziert werden. Wenn Sie Abfrageergebnisse im Windows Explorer anzeigen möchten, müssen Sie eine Shelldatenquelle implementieren, bevor Sie einen Protokollhandler zur Erweiterung des Indizes erstellen können. Wenn jedoch alle Abfragen programmatisch sind (z. B. über OLE DB) und vom Code der Anwendung und nicht von der Shell interpretiert werden, ist ein Shell-Namespace dennoch vorzuziehen, aber nicht erforderlich.

Ein Protokollhandler ist für Windows erforderlich, um Informationen zu Dateiinhalten abzurufen, z. B. Elemente in Datenbanken oder benutzerdefinierte Dateitypen. Während Windows Search den Namen und die Eigenschaften der Datei indizieren kann, hat Windows keine Informationen über den Inhalt der Datei. Daher können solche Elemente nicht indiziert oder in der Windows-Shell verfügbar gemacht werden. Durch die Implementierung eines benutzerdefinierten Protokollhandlers können Sie diese Elemente verfügbar machen. Eine Liste der vom Entwicklerszenario identifizierten Handler, die Sie erreichen möchten, finden Sie unter "Übersicht über Handler" in Windows Search als Entwicklungsplattform.

Hinweis

Eine Shell-Datenquelle wird manchmal als Shell-Namespaceerweiterung bezeichnet. Ein Handler wird manchmal als Shellerweiterung oder Shellerweiterungshandler bezeichnet.

 

Benutzeroberfläche

In Windows Vista und höher ist Windows Search in alle Windows Explorer-Fenster integriert, um sofortigen Zugriff auf die Suche zu ermöglichen. Auf diese Weise können Benutzer schnell nach Dateien und Elementen nach Dateinamen, Eigenschaften und Volltextinhalten suchen. Die Ergebnisse können auch weiter gefiltert werden, um die Suche zu verfeinern. Hier sind einige weitere Funktionen von Windows Search:

  • Ein Sofortsuchfeld in jedem Fenster ermöglicht das sofortige Filtern aller Elemente, die aktuell angezeigt werden. Sofortsuchfelder erscheinen im Startmenü, um nach Programmen oder Dateien zu suchen, und in der oberen rechten Ecke aller Windows Explorer-Fenster, um die angezeigten Ergebnisse zu filtern. Die Sofortsuche ist auch in einige andere Windows-Funktionen wie Windows Media Player integriert, um verwandte Dateien zu finden.
  • Dokumente können mit Schlüsselwörtern markiert werden, um sie nach benutzerdefinierten Kriterien zu gruppieren, die vom Benutzer festgelegt werden. Tags sind Metadaten, die vom Benutzer oder von Anwendungen zugewiesen werden, um das Auffinden von Dateien anhand von Schlüsselwörtern zu erleichtern, die möglicherweise nicht im Namen oder Inhalt des Objekts enthalten sind. Beispielsweise könnte eine Reihe von Bildern als „Arizona-Urlaub 2009“ getaggt werden, um sie später durch die Suche nach einem der enthaltenen Wörter schnell wiederzufinden.
  • Erweiterte Spaltenüberschriften in Windows Explorer-Ansichten ermöglichen das Sortieren und Gruppieren von Dokumenten auf unterschiedliche Weise. Dateien können zum Beispiel nach Name, Änderungsdatum, Typ, Größe und Tags sortiert werden. Dokumente können auch nach einer dieser Eigenschaften gruppiert werden, und jede Gruppe kann nach Bedarf gefiltert (ausgeblendet oder angezeigt) werden.
  • Die Dokumente können nach Name, Änderungsdatum, Typ, Größe und Tags gestapelt werden. Stapel enthalten alle Dokumente mit der angegebenen Eigenschaft und befinden sich in einem beliebigen Unterordner des ausgewählten Ordners.
  • Suchvorgänge können gespeichert werden (die später abgerufen werden sollen), indem Sie im Suchbereich im Windows-Explorer auf die Schaltfläche Suche speichern klicken. Die Ergebnisse werden auf der Grundlage der ursprünglichen Kriterien dynamisch neu zusammengestellt, wenn die gespeicherte Suche geöffnet wird. Anweisungen finden Sie unter Speichern Ihrer Suchergebnisse.
  • Mit Vorschauhandlern und Miniaturansichtshandlern können Benutzer Dokumente im Windows-Explorer in der Vorschau anzeigen, ohne die Anwendung öffnen zu müssen, die sie erstellt hat.

Technische Voraussetzungen

Bevor Sie mit dem Lesen der Windows Search SDK-Dokumentation beginnen, sollten Sie ein grundlegendes Verständnis der folgenden Konzepte haben:

  • Implementieren einer Shelldatenquelle.
  • Implementieren eines Handlers.
  • Funktionsweise in systemeigenem Code.

Eine Shell-Datenquelle ist eine Komponente, die verwendet wird, um den Shell-Namespace zu erweitern und Elemente in einem Datenspeicher verfügbar zu machen. In der Vergangenheit wurde die Shelldatenquelle als Shell-Namespace-Erweiterung bezeichnet. Ein Handler ist ein COM-Objekt (Component Object Model), das Funktionen für ein Shellelement bereitstellt. Eine Liste der vom Entwicklerszenario identifizierten Handler, die Sie erreichen möchten, finden Sie unter "Übersicht über Handler" in Windows Search als Entwicklungsplattform.

Weitere Informationen über die Windows Search SDK Interoperabilitäts-Assembly für die Arbeit mit COM-Objekten, die von Windows Search und anderen Programmen, die verwalteten Code verwenden, bereitgestellt werden, finden Sie unter Verwendung von verwaltetem Code mit Shelldaten und Windows Search. Beachten Sie jedoch, dass Filter, Eigenschaftenhandler und Protokollhandler in systemeigenem Code geschrieben werden müssen. Der Grund dafür sind mögliche Versionsprobleme der Common Language Runtime (CLR) mit dem Prozess, in dem mehrere Add-Ins ausgeführt werden. Entwickler, die noch nicht mit C++ vertraut sind, können mit dem Visual C++ Developer Center und den Ersten Schritten für die Windows-Entwicklung beginnen.

SDK-Download und -Inhalte

Zusätzlich zur Erfüllung der aufgeführten technischen Voraussetzungen müssen Sie auch das Windows SDK herunterladen, um die Windows Search-Bibliotheken abzurufen. Die Windows Search-Codebeispiele enthalten nützliche Codebeispiele und eine Interoperabilitätsassembly für die Entwicklung mit verwaltetem Code.

Dokumentation zum Windows Search SDK

Die Inhalte der Windows Search SDK-Dokumentation sind wie folgt:

Windows Search ersetzt Windows Desktop Search (WDS), die als Add-In für Windows XP und Windows Server 2003 verfügbar war. WDS ersetzte den älteren Indizierungsdienst aus früheren Versionen von Windows durch Verbesserungen der Leistung, Benutzerfreundlichkeit und Erweiterbarkeit. Die neue Entwicklungsplattform unterstützt Anforderungen, die zu einem sichereren und stabileren System führen. Obwohl die neue Abfrageplattform nicht mit Microsoft Windows Desktop Search (WDS) 2.x kompatibel ist, können Filter und Protokollhandler, die für frühere Versionen von WDS geschrieben wurden, aktualisiert werden, um mit Windows Search zu arbeiten. Windows Search unterstützt auch ein neues Eigenschaftssystem. Informationen zu Filtern, Eigenschaftenhandlern und Protokollhandlern finden Sie unter Erweitern des Indizes.

Windows Search ist in Windows Vista und höher integriert und steht als weiterverteilbares Update auf WDS 2.x zur Unterstützung der folgenden Betriebssysteme zur Verfügung:

  • 32-Bit-Versionen von Windows XP mit Service Pack 2 (SP2).
  • Alle x64-basierten Versionen von Windows XP.
  • Windows Server 2003 mit Service Pack 1 (SP1) oder höher.
  • Alle x64-basierten Versionen von Windows Server 2003.

Auf Systemen mit diesen Betriebssystemen muss Windows Search installiert sein, damit für Windows Search geschriebene Anwendungen ausgeführt werden können.

Weitere Ressourcen

Windows Search als Entwicklungsplattform

Von Windows Search unterstützte Sprachen

Verwenden von verwaltetem Code mit Shelldaten und Windows Search