Verwalten von Suchstämmen

Mit dem Durchforstungsbereichs-Manager (CSM) können Sie Suchwurzeln für Ihre Datenspeicher zum und aus dem Windows Search-Durchforstungsbereich hinzufügen und daraus entfernen.

Dieses Thema enthält die folgenden Themen:

 

Informationen zu Suchwurzeln

Ein Suchstamm definiert die Basis eines Shellnamespaces, in dem bestimmte Bereiche eingeschlossen oder ausgeschlossen werden können, und ist in der Regel der Container der höchsten Ebene in einem Protokoll, der aufgezählt werden kann. Es gibt nicht an, welche Teile dieses Speichers indiziert werden sollen oder nicht. Sie signalisiert lediglich, dass ein Inhaltsspeicher vorhanden ist und einem registrierten Protokollhandler zugeordnet ist. Die Syntax zum Identifizieren einer Suchstamm-URL umfasst das Protokoll, den Speicher oder die Sicherheits-ID des Benutzers, den Pfad und optional ein bestimmtes Element (z. B. eine Datei). Die folgenden Beispiele zeigen zwei Formen der Syntax für einen Suchstamm.

<protocol>://<store or SID>\<path>\[item]
or
<protocol>://<store or SID>/<path>/[item]

Auf das <Protokollsegment> müssen zwei (2) Schrägstriche ("/") folgen, es sei denn, es handelt sich um das File:-Protokoll, das drei Schrägstriche (file:///) erfordert. Das <Website- oder SID-Segment> stellt entweder einen Inhaltsspeicher oder eine Benutzersicherheits-ID dar, wenn der Suchstamm spezifisch für den Benutzer sein soll. Das <Pfadsegment> besteht aus einer Gruppe von Containern, z. B. Verzeichnissen oder Ordnern, und kann das Wildcardzeichen "*" enthalten. Das <Elementsegment> ist optional und kann auch das Wildcardzeichen "*" enthalten. Wenn Sie kein Element einschließen, stellen Sie sicher, dass Sie Das Pfadsegment mit einem Schrägstrich abschließen, oder der Indexer geht davon aus, dass der letzte Untercontainer ein Element ist.

Angenommen, Sie haben einen Protokollhandler (myPH) implementiert, um Dateien vom Typ *.myext für eine benutzerdefinierte Anwendung zu verarbeiten. Alle diese Dateien befinden sich im Ordner WorkteamA\ProjectFiles auf einem lokalen Computer. Der Suchstamm dafür könnte wie folgt aussehen:

  • myPH:///C:\WorkteamA\ProjectFiles\

Angenommen, Sie planen, alle MYEXT-Dateien, aber nichts anderes aus diesem Container in den Index einzuschließen. Der Suchstamm dafür könnte wie folgt aussehen:

  • myPH:///C:\WorkteamA\ProjectFiles\*.myext.

Mit Wildcardmustern werden URLs mithilfe des Wildcardzeichens "*" definiert und als Muster und nicht als URL betrachtet, aber die Terminologie wird häufig austauschbar verwendet. Beispielsweise würde file:///C:\ProjectA\*\data\ mit den folgenden URLs übereinstimmen:

  • C:\ProjectA\version1\data\
  • C:\ProjectA\version2\data\

Dieses Muster würde jedoch nicht mit dieser URL übereinstimmen:

  • C:\ProjectA\version1\temp\data\

Sie sollten neue Suchwurzeln für Container erstellen, die sich noch nicht im Durchforstungsbereich des Indexers befinden. Wenn pfad C:\ParentScope bereits im Durchforstungsbereich enthalten ist, müssen Sie keinen neuen Suchstamm für C:\ParentScope\ChildScope hinzufügen, es sei denn, Sie wissen, dass der untergeordnete Bereich zuvor ausgeschlossen wurde.

Auf der Benutzeroberfläche zum Festlegen von Windows Search-Optionen werden Suchwurzeln für Benutzer angezeigt, damit sie die Bereichsregeln für ihre Suchvorgänge verfeinern können. Im Rahmen des Installationsvorgangs für Ihren benutzerdefinierten Protokollhandler, Container und/oder Ihre Anwendung können Sie einen Standarddurchforstungsbereich mit Einschluss- und Ausschlussregeln definieren. Diese Regeln werden Endbenutzern als Standorte angezeigt. Benutzer können in den Unterverzeichnissen Ihres vordefinierten Suchstamms navigieren und diejenigen auswählen, die sie in Suchvorgänge einbeziehen möchten, oder diejenigen löschen, die sie ausschließen möchten.

 

Vorbereitungen

Bevor Sie eine der CSM-Schnittstellen (Crawl Scope Manager) verwenden können, müssen Sie die folgenden erforderlichen Schritte ausführen:

  1. Erstellen Sie das CrawlSearchManager-Objekt , und rufen Sie dessen ISearchManager-Schnittstelle ab.
  2. Rufen Sie ISearchManager::GetCatalog für "SystemIndex" auf, um eine instance einer ISearchCatalogManager-Schnittstelle abzurufen.
  3. Rufen Sie ISearchCatalogManager::GetCrawlScopeManager auf, um eine instance der ISearchCrawlScopeManager-Schnittstelle zu erhalten.

Nachdem Sie Änderungen am Durchforstungsbereichs-Manager (CSM) vorgenommen haben, müssen Sie ISearchCrawlScopeManager::SaveAll aufrufen. Diese Methode akzeptiert keine Parameter und gibt bei Erfolg S_OK zurück.

 

Windows 7: Neue Durchforstungsbereichs-Manager-API

In Windows 7 und höher erweitert ISearchCrawlScopeManager2 die Funktionalität der ISearchCrawlScopeManager-Schnittstelle . Die ISearchCrawlScopeManager2::GetVersion-Methode ruft die CSM-Version (Crawl Scope Manager) ab, die Clients informiert, ob sich der Status des CSM geändert hat. ISearchCrawlScopeManager2::GetVersion führt nicht zu einem prozessübergreifenden Aufruf. Wenn die Funktion erfolgreich ist, bleibt der zurückgegebene Zeiger gültig, bis der Client UnmapViewOfFile für den Zeiger und CloseHandle für das zurückgegebene Handle aufruft.

 

Hinzufügen von Stammelementen zum Durchforstungsbereich

Der ISearchCrawlScopeManager informiert die Suchmaschine über Container, die durchforstet und/oder watch werden sollen, sowie über Elemente unter diesen Containern, die eingeschlossen oder ausgeschlossen werden sollen. Um einen neuen Suchstamm hinzuzufügen, instanziieren Sie ein ISearchRoot-Objekt , legen Sie die Stammattribute fest, rufen Sie dann ISearchCrawlScopeManager::AddRoot auf, und übergeben Sie einen Zeiger auf Ihr ISearchRoot-Objekt . Die Stamm-URL der Suche hat das gleiche Format wie der zuvor beschriebene Suchstamm.

In der folgenden Tabelle werden die relevanten Put-Methoden für ISearchRoot beschrieben. die anderen Put-Methoden der Schnittstelle werden derzeit nicht von Windows Search verwendet. Es wird empfohlen, die Sicherheits-IDs (SIDs) der Benutzer in alle Wurzeln einzugeben, um die Sicherheit zu verbessern. Benutzerspezifische Stammelemente sind sicherer, da Abfragen in einem benutzerspezifischen Prozess ausgeführt werden. So wird sichergestellt, dass ein Benutzer z. B. keine Elemente aus dem Posteingang eines anderen Benutzers indiziert sehen kann.

Methode BESCHREIBUNG
put_ProvidesNotifications Legen Sie diesen Wert auf TRUE fest, wenn ein Protokollhandler oder eine andere Anwendung die Suchmaschine über Änderungen an den URLs unter dem Suchstamm benachrichtigt. Die Benachrichtigung gibt an, dass die URLs neu indiziert werden müssen.
put_RootURL Legt die Stamm-URL der aktuellen Suche fest. Die URL nimmt das zuvor beschriebene Suchstammformular an.

 

 

Standardmäßig durchforstet der Indexer einen Bereich nicht, wenn Sie einen Suchstamm hinzufügen. Sie müssen auch eine Includeregel für den Stamm hinzufügen. Wenn Sie einen benutzerspezifischen Stamm für eine Anwendung hinzufügen möchten, sollte diese Anwendung beim Starten der Anwendung die entsprechenden Stammelemente für neue Benutzer hinzufügen.

So fügen Sie die entsprechenden Stammelemente für neue Benutzer hinzu:

  1. Rufen Sie die SID des Benutzers ab.
  2. Listet alle Stammelemente auf, um zu überprüfen, ob ein Stamm für diese SID vorhanden ist.
  3. Fügen Sie bei Bedarf mithilfe der SID einen neuen Stamm hinzu.

 

Entfernen von Wurzeln aus dem Durchforstungsbereich

Sie können ISearchCrawlScopeManager verwenden, um einen Stamm aus dem Durchforstungsbereich zu entfernen, wenn diese URL nicht mehr indiziert werden soll. Durch das Entfernen eines Stamms werden auch alle Bereichsregeln für diese URL gelöscht. Angenommen, Sie möchten einen Inhaltsspeicher und/oder seinen Protokollhandler aus einem System deinstallieren. Sie können die Anwendung deinstallieren, alle Daten entfernen und dann den Suchstamm aus dem Durchforstungsbereich entfernen, und der Durchforstungsbereichs-Manager entfernt den Stamm und alle Bereichsregeln, die dem Stamm zugeordnet sind.

Um einen vorhandenen Suchstamm zu entfernen, rufen Sie ISearchCrawlScopeManager::RemoveRoot mit dem Suchstamm auf, den Sie entfernen möchten. Die Stamm-URL der Suche hat das gleiche Format wie der zuvor beschriebene Suchstamm. Diese Methode gibt S_FALSE zurück, wenn der Stamm nicht gefunden wurde, und einen Fehlercode, wenn beim Entfernen eines gefundenen Stamms ein Fehler aufgetreten ist.

Durch das Entfernen eines Suchstamms wird auch die URL aus der Benutzeroberfläche für Windows Search-Optionen entfernt, sodass Benutzer diesen Container oder Speicherort möglicherweise nicht über die Benutzeroberfläche erneut hinzufügen können. Es ist auch möglich, alle Benutzersatzüberschreibungen eines Suchstamms zu entfernen und rückgängig machen zu den ursprünglichen Suchstamm- und Bereichsregeln zu verwenden. Weitere Informationen finden Sie unter Verwalten von Bereichsregeln.

Hinweis

Wenn Benutzer unter Windows Vista über Benutzerprofile in Systemsteuerung entfernt werden, entfernt CSM alle Regeln und Stammelemente mit ihrer SID und entfernt ihre indizierten Elemente aus dem Katalog. Unter Windows XP müssen Sie die Stamm- und Regeln der Benutzer manuell entfernen.

 

 

Auflisten von Wurzeln im Durchforstungsbereich

Der CSM listet Suchstämme mithilfe einer standardmäßigen COM-Enumeratorschnittstelle auf, IEnumSearchRoots. Sie können diese Schnittstelle verwenden, um Suchwurzeln für eine Reihe von Zwecken aufzulisten. Beispielsweise können Sie den gesamten Durchforstungsbereich in einer Benutzeroberfläche anzeigen oder ermitteln, ob sich ein bestimmter Stamm oder das untergeordnete Element eines Stamms bereits im Durchforstungsbereich befindet.

 

Referenz

ISearchCrawlScopeManager

ISearchRoot

IEnumSearchRoots

Konzept

Verwenden des Durchforstungsbereichs-Managers

Verwalten von Bereichsregeln