Übersicht über Windows Search
Windows Search ist eine Desktopsuchplattform, die über Funktionen für die sofortige Suche für die gängigsten Dateitypen und Datentypen verfügt, und Drittanbieterentwickler können diese Funktionen auf neue Dateitypen und Datentypen erweitern.
Dieses Thema ist wie folgt organisiert:
- Introduction (Einführung)
- Technische Voraussetzungen
- Dokumentation zum Windows Search SDK
- Verlauf der Windows Suche
- Weitere Ressourcen
- Zugehörige Themen
Einführung
Windows Search ist eine Standardkomponente von Windows 7 und Windows Vista und standardmäßig aktiviert. Windows Search ersetzt Windows Desktopsuche (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
Der WSS organisiert die extrahierten Funktionen einer Sammlung von Dokumenten. Das Windows-Suchprotokoll ermöglicht einem Client die Kommunikation mit einem Server, der eine WSS hostet, sowohl um Abfragen auszugeben als auch einem Administrator die Verwaltung des Indizierungsservers 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 darstellt. Ein Katalog stellt einen Satz indizierter Dokumente dar, die abgefragt werden können. Ein Katalog besteht aus einer Eigenschaftentabelle mit dem Text oder Wert und dem entsprechenden Speicherort (Gebietsschema), der in Spalten der Tabelle gespeichert ist. 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 den schnellen Wortabgleich) und einen Eigenschaftencache (zum schnellen Abrufen von Eigenschaftswerten) enthalten.
Der Indexerprozess wird als Windows Dienst implementiert, der im LocalSystem-Konto ausgeführt wird und immer für alle Benutzer ausgeführt wird (auch wenn kein Benutzer angemeldet ist), wodurch Windows Search Folgendes erreichen kann:
- Verwalten Sie einen Index, der von allen Benutzern gemeinsam genutzt wird.
- Behalten Sie Sicherheitseinschränkungen für den Inhaltszugriff bei.
- Verarbeiten von Remoteabfragen von Clientcomputern im Netzwerk.
Die Suchdienst wurde entwickelt, um die Benutzerfreundlichkeit und Systemleistung bei der Indizierung zu schützen. Die folgenden Bedingungen bewirken, dass der Dienst die Indizierung zurückdrosselt oder anzuhalten:
- Hohe CPU-Auslastung durch nicht suchbezogene Prozesse.
- Hohe System-E/A-Rate, einschließlich Dateilese- und Schreibvorgänge, Seitendatei- und Dateicache-E/A und zugeordneter Datei-E/A.
- Geringe Arbeitsspeicherverfügbarkeit.
- Niedrige Akkulaufzeit.
- Wenig Speicherplatz auf dem Laufwerk, auf dem der Index gespeichert wird.
Entwicklungsplattform
Die bevorzugte Möglichkeit, auf die Such-APIs zuzugreifen und Windows Search-Anwendungen zu erstellen, ist eine Shell-Datenquelle. Eine Shell-Datenquelle ist eine Komponente, die verwendet wird, um den Shellnamespace 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 vom Windows Search-System mithilfe eines Protokollhandlers indiziert werden.
Beispielsweise ist ISearchFolderItemFactory eine Komponente, die Instanzen der Suchordnerdatenquelle erstellen kann. Dabei handelt es sich um eine Art "virtuelle" Datenquelle, die von der Shell bereitgestellt wird und Abfragen über andere Datenquellen im Shellnamespace 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 möglich sein. Mit dieser Schnittstelle können Sie die Parameter der Suche mithilfe von Methoden einrichten, die Suchordner erstellen und ändern. Wenn Methoden dieser Schnittstelle nicht aufgerufen werden, werden stattdessen Standardwerte verwendet.
Der indirekte Zugriff auf die Windows Search-Funktion über das Shell-Datenmodell wird bevorzugt, da er Zugriff auf vollständige Shellfunktionen auf der Ebene des Shell-Datenmodells bietet. Beispielsweise können Sie den Bereich einer Suche auf eine Bibliothek festlegen (eine Funktion, 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 unterschiedlichen Indizes befinden (wenn sich die Ordner auf unterschiedlichen Computern befinden). Die Shell-Datenebene erstellt auch eine vollständigere Ansicht der Eigenschaften von Elementen, die einige Eigenschaftswerte synthetisiert. Es bietet auch Zugriff auf Suchfunktionen für Datenspeicher, die nicht von Windows Search indiziert werden. Beispielsweise können Sie ein USB-Speichergerät (Universal Serial Bus), ein portables Gerät, das das MTP-Protokoll verwendet, oder einen FTP-Server (File Transfer Protocol) über die Shell-Datenquellen durchsuchen, die Zugriff auf diese Speichersysteme bieten. Dadurch wird eine bessere Benutzererfahrung sichergestellt.
Windows Search verfügt über einen Cache von Eigenschaftswerten, der in der Implementierung des Windows Search Service (WSS) verwendet wird. Diese Eigenschaftswerte können programmgesteuert mithilfe des Windows Search OLE DB-Anbieters oder über ISearchFolderItemFactoryabgefragt werden, der Elemente in Suchergebnissen und abfragebasierten Ansichten darstellt. Windows Search sammelt und speichert 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, die die Daten im Index über programmgesteuerte Abfragen nutzen, und die Daten im Index für benutzerdefinierte Datei- und Elementtypen erweitern, die durch Windows Search indiziert werden sollen. Wenn Sie Abfrageergebnisse in Windows Explorer anzeigen möchten, müssen Sie eine Shell-Datenquelle implementieren, bevor Sie einen Protokollhandler erstellen können, um den Index zu erweitern. Wenn jedoch alle Abfragen programmatisch sind (z.B. über OLE DB) und nicht vom Code der Anwendung anstatt von der Shell interpretiert werden, wird ein Shellnamespace immer noch bevorzugt, aber nicht benötigt.
Für Windows ist ein Protokollhandler 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, enthält Windows keine Informationen zum Inhalt der Datei. Daher können solche Elemente nicht in der Windows Shell indiziert oder verfügbar gemacht werden. Durch implementieren eines benutzerdefinierten Protokollhandlers können Sie diese Elemente verfügbar machen. Eine Liste der Handler, die durch das Entwicklerszenario identifiziert werden, das Sie erreichen möchten, finden Sie unter "Übersicht über Handler" in Windows Suchen als Entwicklungsplattform.
Hinweis
Eine Shell-Datenquelle wird manchmal als Shellnamespaceerweiterung bezeichnet. Ein Handler wird manchmal als Shellerweiterung oder Shellerweiterungshandler bezeichnet.
Benutzeroberfläche
In Windows Vista und höher ist Windows Suche in alle Windows Explorer-Fenster integriert, um sofortigen Zugriff auf die Suche zu erhalten. Dadurch 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 Features von Windows Search:
- Ein Sofortsuchfeld in jedem Fenster ermöglicht die sofortige Filterung aller derzeit angezeigten Elemente. Sofortige Suchfelder werden im Startmenü angezeigt, um nach Programmen oder Dateien zu suchen, und in der oberen rechten Ecke aller Windows Explorer-Fenster, um die angezeigten Ergebnisse zu filtern. Die sofortige Suche ist auch in einige andere features Windows integriert, z. B. Windows Media Player, um verwandte Dateien zu suchen.
- Dokumente können mit Schlüsselwörtern gekennzeichnet werden, um sie nach benutzerdefinierten Kriterien zu gruppieren, die vom Benutzer definiert werden. Tags sind Metadatenelemente, die vom Benutzer oder den Anwendungen zugewiesen werden, um die Suche nach Dateien basierend auf Schlüsselwörtern zu vereinfachen, die sich möglicherweise nicht im Elementnamen oder -inhalt befinden. Beispielsweise kann eine Gruppe von Bildern als "Arizona Vacation 2009" markiert werden, um später schnell abzurufen, indem nach einem der enthaltenen Wörter gesucht wird.
- Erweiterte Spaltenüberschriften in Windows Explorer-Ansichten ermöglichen das Sortieren und Gruppieren von Dokumenten auf unterschiedliche Weise. Beispielsweise können Dateien 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.
- Dokumente können nach Name, Datumsänderung, Typ, Größe und Tags gestapelt werden. Stapel enthalten alle Dokumente, die über die angegebene Eigenschaft verfügen und sich in einem beliebigen Unterordner des ausgewählten Ordners befinden.
- Suchen können gespeichert werden (um später abgerufen zu werden), indem Sie im Suchbereich im Windows-Explorer auf die Schaltfläche Suche speichern klicken. Die Ergebnisse werden basierend auf den ursprünglichen Kriterien dynamisch neu aufgefüllt, wenn die gespeicherte Suche geöffnet wird. Anweisungen finden Sie unter Speichern der Suchergebnisse.
- Vorschauhandler und Miniaturansichtshandler ermöglichen Benutzern die Vorschau von Dokumenten in Windows Explorer, ohne die Anwendung öffnen zu müssen, die sie erstellt hat.
Technische Voraussetzungen
Bevor Sie mit dem Lesen der Dokumentation zum Windows Search SDK beginnen, sollten Sie über grundlegende Kenntnisse der folgenden Konzepte verfügen:
- Implementieren einer Shell-Datenquelle.
- Implementieren eines Handlers.
- Arbeiten in nativem Code.
Eine Shell-Datenquelle ist eine Komponente, die verwendet wird, um den Shellnamespace zu erweitern und Elemente in einem Datenspeicher verfügbar zu machen. In der Vergangenheit wurde die Shell-Datenquelle als Shellnamespaceerweiterung bezeichnet. Ein Handler ist ein Component Object Model -Objekt (COM), das Funktionen für ein Shellelement bietet. Eine Liste der Handler, die vom Entwicklerszenario identifiziert werden, das Sie erreichen möchten, finden Sie unter "Übersicht über Handler" in Windows Search as a Development Platform (Suchen als Entwicklungsplattform).
Weitere Informationen zur Windows Search SDK-Interoperabilitäts-Assembly für die Arbeit mit COM-Objekten, die von Windows Search und anderen Programmen verfügbar gemacht werden, die verwalteten Code verwenden, finden Sie unter Verwenden von verwaltetem Code mit Shelldaten und Windows Search. Beachten Sie jedoch, dass Filter, Eigenschaftenhandler und Protokollhandler in nativem Code geschrieben werden müssen. Dies liegt an potenziellen ClR-Versionsproblemen (Common Language Runtime) mit dem Prozess, in dem mehrere Add-Ins ausgeführt werden. Entwickler, die noch nicht mit C++ arbeiten, können mit dem Visual C++ Developer Center und Windows Development Erste Schritte.
SDK-Download und -Inhalte
Zusätzlich zur Erfüllung der aufgeführten technischen Anforderungen müssen Sie auch das Windows SDK herunterladen, um die Windows Search-Bibliotheken zu erhalten. Die Windows Search SDK-Beispiele enthalten nützliche Codebeispiele und eine Interoperabilitäts-Assembly für die Entwicklung mit verwaltetem Code. Weitere Informationen zur Verwendung der Codebeispiele finden Sie unter Windows Codebeispiele für die Suche.
Windows Search SDK-Dokumentation
Der Inhalt der Dokumentation Windows Search SDK lautet wie folgt:
Windows Search als Entwicklungsplattform
Beschreibt die wichtigsten Entwicklungsszenarien in Windows Search. Enthält eine Liste der Handler, die durch das zu erreichende Entwicklungsszenario identifiziert werden, Richtlinien für Das Add-In-Installationsprogramm und Implementierungshinweise.
Windows Search Developer es Guide (Entwicklerhandbuch für die Suche)
Enthält Erläuterungen zum Verwalten des Indexes,zum programmgesteuertenAbfragen des Indexes, zum Erweitern des Indexesund zum Erweitern von Sprachressourcen.
-
Dokumentiert die folgenden Kategorien von Windows Search-Schnittstellen: Protokollhandler , Abfragen, Durchforstungsbereich , Daten-Add-Ins, Indexverwaltungund Benachrichtigungen. Die Referenzdokumentation enthält auch Konstanten und Enumerationen, Strukturen, Eigenschaftenzuordnungenund das Gespeicherte Suchdateiformat.
Windows Codebeispiele für die Suche
Beschreibt die verfügbaren Api-Codebeispiele für die Suche.
-
Beschreibt Windows 7-Unterstützung für den Suchverbund mit Remotedatenspeichern mithilfe von OpenSearch-Technologien, die benutzern den Zugriff auf und die Interaktion mit ihren Remotedaten aus dem Windows Explorer ermöglichen.
-
Listet Technologien im Zusammenhang mit Windows Search: Enterprise Search, SharePoint Enterprise Search und Legacyanwendungen wie Windows Desktop Search 2.x und Platform SDK: Indexing Service.
-
Definiert wichtige Begriffe, die in Windows Search- und Shell-Technologien verwendet werden.
Verlauf der Windows Search
Windows Search ersetzt Windows Desktop Search (WDS), das 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 beitragen. 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 Eigenschaftensystem. Informationen zu Filtern, Eigenschaftenhandlern und Protokollhandlern finden Sie unter Erweitern des Indexes.
Windows Search ist in Windows Vista und höher integriert und als verteilbares Update für WDS 2.x verfügbar, um die folgenden Betriebssysteme zu unterstützen:
- 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) und höher.
- Alle x64-basierten Versionen von Windows Server 2003.
Auf Systemen, auf denen diese Betriebssysteme ausgeführt werden, muss Windows Search installiert sein, um Anwendungen ausführen zu können, die für Windows wurden.
Weitere Ressourcen
- Informationen zum Erstellen einer Shell-Datenquelle finden Sie unter Implementing the Basic Folder Object Interfaces.
- Weitere Informationen zu ISearchFolderItemFactory und der Datenbankordnerdatenquelle finden Sie in der Beschreibung der STR _ PARSE WITH PROPERTIES-Konstante unter Bind Context String _ _ Keys. Siehe auch Zuordnungsarrays und IPropertySystem::GetPropertyDescriptionListFromString.
- Weitere Informationen zu OLE DB finden Sie unter OLE DB Programming Overview ( Übersicht über die Programmierung). Informationen zu den .NET Framework Datenanbieter für OLE DB finden Sie in der Dokumentation zum System.Data.OleDb-Namespace.
- Eine Übersicht über Dateityphandler (auch als Shell-Erweiterungshandler und Suchhandler bezeichnet) finden Sie unter Windows Search as a Development Platform (Suchen als Entwicklungsplattform).
- Nachrichtenboards zu Suchtechnologien, die von der Community unterstützt werden, finden Sie im MSDN-Forum: Windows Desktop Search Development.
- Weitere Codebeispiele finden Sie unter Windows Search Code Samples (Codebeispiele für die Suche).