Freigeben über


Verwenden des Katalog-Managers

Die Schnittstellen ISearchCatalogManager und ISearchCatalogManager2 bieten Methoden zum Verwalten eines Suchkatalogs, z. B. zur Neuindizierung oder Festlegen von Timeouts. Während Windows Search derzeit nur einen Katalog verwendet, wurde diese Schnittstelle entwickelt, um Ihnen mehr Kontrolle für die unabhängige Verwaltung mehrerer Kataloge zu ermöglichen. Die Schnittstelle verwaltet den Katalog auf folgende Weise:

  • Zugriff auf andere Schnittstellen– Abrufen anderer suchbezogener Schnittstellen, die vom Durchforstungsbereichs-Manager, Datenänderungsbenachrichtigungen und der ISearchQueryHelper-Schnittstelle erforderlich sind.
  • Kataloginhalte– Stellen Sie sicher, dass neue Daten indiziert werden und dass andere Anwendungen und Komponenten ordnungsgemäß funktionieren, indem Sie eine Neuindizierung des gesamten oder eines Teils des Katalogs erzwingen oder den gesamten Katalog zurücksetzen.
  • Katalogeigenschaften – Festlegen von Eigenschaften, die bestimmen, wie der Katalog Timeouts beim Herstellen einer Verbindung mit Protokollhandlern verwaltet und wie diakritische Markierungen in Suchvorgängen behandelt werden.
  • Katalog status – Abrufen von Informationen zum Katalog, einschließlich status, Größe und aktuellem Aktivitätsstatus.

Dieses Thema ist wie folgt organisiert:

Einige nützliche Schnittstellen auf der Windows Search-Plattform erfordern eine instance des Katalog-Managers, bevor sie verwendet werden können. Um einen Katalog-Manager für einen angegebenen Katalog zu erstellen, rufen Sie die ISearchManager::GetCatalog-Methode auf. Die Methoden des Katalog-Managers können dann verwendet werden, um Schnittstellen zu instanziieren und zurückzugeben, die auf dem angegebenen Katalog basieren.

Methode BESCHREIBUNG
GetQueryHelper Ruft eine instance der ISearchQueryHelper-Schnittstelle für den aktuellen Katalog ab, damit Sie Abfragen problemlos erstellen können.
GetCrawlScopeManager Ruft eine instance von ISearchCrawlScopeManager für diesen Suchkatalog ab, damit Entwickler den Durchforstungsbereich des Windows Search-Indexers ändern können.
GetItemsChangedSink Ruft eine instance der ISearchItemsChangedSink-Schnittstelle ab, die Clientanwendungen verwenden, um den Indexer über Änderungen zu benachrichtigen, wenn der Client status Informationen zum Element indizieren möchte, um vom Anbieter verwaltete Benachrichtigungen zu unterstützen. Weitere Informationen finden Sie unter Benachrichtigen des Index der Änderungen .
GetPersistentItemsChangedSink Ruft eine instance von ISearchPersistentItemsChangedSink ab, die Clientanwendungen verwenden, um den Indexer über Änderungen zu benachrichtigen, wenn der Client keine Indizierung status Informationen wünscht (indexerverwaltete Benachrichtigungen). Weitere Informationen finden Sie unter Benachrichtigen des Index der Änderungen .

Verwalten des Kataloginhalts

Bei der Verwaltung des Katalogs gibt es zwei Hauptaufgaben: Das Erneute Indizieren aller oder einiger URLs im Durchforstungsbereich des Indexers und das Zurücksetzen des gesamten zugrunde liegenden Katalogs. Wenn Sie URLs neu indizieren, verbleiben alte Daten im Katalog, bis sie durch neue Daten ersetzt werden. Wenn Sie den Katalog zurücksetzen, wird der gesamte Katalog neu erstellt, und alle URLs im Durchforstungsbereich werden neu indiziert. Dieser Prozess kann viel Zeit in Anspruch nehmen und sollte nur als letztes Mittel zum Lösen von Problemen wie einem möglicherweise beschädigten Index verwendet werden.

Wenn Sie eine neue Anwendung, einen Protokollhandler oder filter installieren, sollte die Setupanwendung ihr Verzeichnis oder stamm dem Durchforstungsbereich hinzufügen, um sicherzustellen, dass der Indexer den Speicherort der Daten dieser Anwendung enthält. Wenn die Daten nicht im Katalog angezeigt werden, nachdem der Indexer seinen Durchforstungsbereich durchforstet hat, sollten Sie zuerst sicherstellen, dass der Speicherort der Daten im Durchforstungsbereich enthalten ist. Sie können es über die Benutzeroberfläche für Windows Search-Optionen oder den Durchforstungsbereichs-Manager hinzufügen. Wenn sich der Speicherort im Durchforstungsbereich zu befinden scheint, können Sie manuell eine Neuindizierung aller URLs im Durchforstungsbereich des Indexers oder einer Teilmenge erzwingen, indem Sie die folgenden Methoden der ISearchCatalogManager-Schnittstelle verwenden.

Neuindizierungsmethode BESCHREIBUNG
ISearchCatalogManager::Reindex Indiziert alle URLs im Katalog neu. Die alten Informationen bleiben erhalten, bis sie durch neue Informationen ersetzt werden.
ISearchCatalogManager::ReindexMatchingURLs
ISearchCatalogManager::ReindexSearchRoot
Indiziert URLs neu, die dem Muster entsprechen oder an einem bestimmten Stamm beginnen (z. B. file:///C:\Ordnername\Unterordnername\). Dies ist nützlich, um alles in einem bestimmten Verzeichnis oder mit einer bestimmten Erweiterung wie bei der Installation einer Anwendung neu zu durchforsten.
PriorMatchingURLs Weist den Indexer an, Indizierungselemente mit URLs, die einem angegebenen Muster entsprechen, gegenüber dem Ausführen anderer Indizierungsaufgaben zu priorisieren.

Zurücksetzen des Indexes. Sie können den gesamten Index mit einem Aufruf von ISearchCatalogManager::Reset zurücksetzen. Dadurch wird der zugrunde liegende Katalog zurückgesetzt, indem die Datenbanken neu erstellt und ein vollständiger Index aller URLs im Durchforstungsbereich ausgeführt wird. Dieser Prozess kann viel Zeit in Anspruch nehmen und sollte nur als letztes Mittel zum Lösen von Problemen wie einem möglicherweise beschädigten Index verwendet werden.

Wichtig

Aufgrund der Verlangsamung der Indizierung, die diese Methoden verursachen können, sollten sie sorgfältig verwendet werden, wenn Sie versuchen, Indizierungs- oder Katalogprobleme zu identifizieren. Stellen Sie zunächst sicher, dass Ihre Suchwurzeln und Bereichsregeln im Durchforstungsbereichs-Manager hinzugefügt werden, und stellen Sie dann sicher, dass das FANCI-Bit (File Attribute Not Content Indexed) für Dateien und Ordner ordnungsgemäß festgelegt ist. Wenn Sie bestätigt haben, dass diese korrekt sind, versuchen Sie zuerst ReindexSearchRoot und zuletzt Reindex. Wenn beides nicht funktioniert, versuchen Sie zurücksetzen als letztes Mittel.

Verwandte Informationen finden Sie unter Benachrichtigen des Index der Änderungen und Abfragen des Indexes mit ISearchQueryHelper.

Verwalten des Katalogstatus

Der Katalog-Manager kann verwendet werden, um die status des Katalogs für Anwendungen abzurufen, die die Verwaltung des Katalogs anpassen möchten (z. B. eine benutzerdefinierte Überwachungsanwendung für den Katalogstatus). Der Katalog-Manager ist jedoch in der Regel nicht für die meisten suchbezogenen Entwicklungsszenarien erforderlich. Gängige Verwendungen sind eine Überwachungsanwendung für den Katalogstatus oder eine Anwendung im Systemsteuerung-Stil.

In der folgenden Tabelle werden die Methoden von ISearchCatalogManager beschrieben, die zum Verwalten von Katalogen status verwendet werden.

Methode BESCHREIBUNG
URLBeingIndexed Ruft die URL ab, die derzeit indiziert wird. Diese Methode ist nützlich, wenn Sie ermitteln möchten, ob der Indexer an einem Element hängen geblieben ist.
NumberOfItems Ruft die Anzahl der Elemente im Katalog ab.
NumberOfItemsToIndex Ruft die folgenden Informationen zu Elementen ab, die indiziert werden sollen:
  • plIncrementalCount – die Anzahl der Elemente, die im nächsten inkrementellen Index indiziert werden sollen
  • plNotificationQueue : Die Anzahl der Elemente in der Benachrichtigungswarteschlange. Diese Informationen sind nützlich für eine Benachrichtigungsanwendung, die überprüfen muss, ob der Indexer die von der Anwendung gesendeten Benachrichtigungen empfängt.
  • plHighPriorityQueue : Die Anzahl der Elemente in der Warteschlange mit hoher Priorität. Elemente in plHighPriorityQueue werden zuerst indiziert.
GetCatalogStatus Ruft die status des Katalogs ab und gibt einen Enumerationswert zurück, der die aktuelle status. Im Folgenden sind mögliche Katalogzustände aufgeführt:
  • Leerlauf: Es ist keine Indizierung erforderlich.
  • Angehalten: Die Indizierung wird angehalten (z. B. aufgrund einer niedrigen Akku- oder hohen CPU-Auslastung).
  • Wiederherstellung: Die Indizierung wird wiederhergestellt.
  • Vollständige Durchforstung: Indexer führt eine vollständige Durchforstung des Durchforstungsbereichs durch.
  • Inkrementelle Durchforstung: Indexer führt eine inkrementelle Durchforstung durch.
  • Verarbeiten von Benachrichtigungen: Indexer verarbeitet Benachrichtigungen.
  • Herunterfahren: Indexer wird heruntergefahren.
get_Name Ruft den Namen des aktuellen Katalogs ab, der in der ISearchManager::GetCatalog-Methode angegeben ist. Derzeit wird nur SystemIndex unterstützt.

Verwalten von Katalogeigenschaften

Es gibt drei Katalogeigenschaften, die Sie mit dem Katalog-Manager verwalten können:

  • Diakritische Sensibilität. Diakritische Zeichen sind Akzentmarken, die Buchstaben hinzugefügt werden, um die Bedeutung oder Aussprache eines Wortes zu kennzeichnen. Diese Eigenschaft bestimmt, ob der Katalog empfindlich auf diakritische Elemente reagiert, und ist wichtig, wenn Sie oder Ihre Benutzer Text in mehreren Sprachen suchen und indizieren. Wenn diese Eigenschaft beispielsweise auf FALSE festgelegt ist, behandelt der Katalog "resume" und "resumé", als wären sie dasselbe Wort.
  • Verbindungstimeouts. Diese Eigenschaft stellt die Zeit zum Warten auf eine Verbindungsantwort von einem Server oder Datenspeicher dar, wie sie in einer TIMEOUT_INFO-Struktur dargestellt wird. Sie können diese Eigenschaft verwenden, um Windows Search zu optimieren.
  • Datentimeouts Diese Eigenschaft stellt die Zeitspanne dar, die auf eine Datentransaktion zwischen dem Indexer und einem Protokollhandler oder Filter gewartet werden muss, wie sie in einer TIMEOUT_INFO-Struktur dargestellt wird. Wenn diese Zeit verstrichen ist, wird der Prozess aus dem Filterdaemon beendet, um Deadlocks und andere Ressourcenprobleme zu verhindern.

Die letzten beiden Eigenschaften sind in erster Linie für die zukünftige Verwendung vorgesehen. Jede dieser Eigenschaften verfügt über get Und put -Methoden.

Methode BESCHREIBUNG
get_DiacriticSensitivity /
put_DiacriticSensitivity
TRUE, wenn der Katalog Wörter mit diakritischen Wörtern unterscheiden soll. FALSE , wenn der Katalog diakritische Elemente ignorieren soll. Um diese Eigenschaft zu ändern, muss der Index neu erstellt werden, da die Schlüssel des Indexes möglicherweise ungültig werden.
get_ConnectTimeout /
put_ConnectTimeout
Die Zeit in Sekunden, die der Indexer auf eine Verbindungsantwort von einem Server oder Datenspeicher warten soll. Wenn sie zu hoch festgelegt werden, kann dies zu Verzögerungen führen, wenn viele Websites nicht reagieren. Wenn Sie ihn zu niedrig festlegen, kann dies dazu führen, dass einige Websites nicht durchforstet werden.
get_DataTimeout /
put_DataTimeout
Die Zeit in Sekunden, die der Indexer auf eine Datentransaktion warten soll.

Ausführen im Modus mit erhöhten Rechten

Für alle Methodenaufrufe, die systemIndex aktualisieren, muss Ihre Anwendung mit erhöhten Rechten ausgeführt werden. Andernfalls schlägt ihre Anwendung mit einem Fehler vom Typ Zugriff verweigert fehl.

Verwalten des Indexes

Schnittstellen zum Verwalten des Indexes

Verwenden des Such-Managers

Verwenden des Durchforstungsbereichs-Managers