Benachrichtigen des Indexes der Änderungen (Ältere Windows-Umgebungsfeatures)
Hinweis
Windows Desktop Search 2.x ist eine veraltete Technologie, die ursprünglich als Add-In für Windows XP und Windows Server 2003 verfügbar war. Verwenden Sie in späteren Versionen stattdessen Windows Search .
Mit Microsoft Windows Desktop Search (WDS) 2.6 können Protokollhandler für einen bestimmten Datenspeicher dem WDS-Indexer mitteilen, wenn sich Die Daten in ihrem Speicher geändert haben. Dadurch wird die Leistung verbessert, indem sichergestellt wird, dass der Indexer nicht den gesamten Speicher auf inkrementellen Indizes durchforstet. Mithilfe von Benachrichtigungs-APIs können Protokollhandler den Indexer benachrichtigen, dass ein Element verschoben oder gelöscht wurde, und sie können der Durchforstungswarteschlange von URLs, die eine Indizierung erfordern, Bereiche hinzufügen. Benachrichtigungen sind hilfreich für Anwendungen wie E-Mail, bei denen der Protokollhandler den Speicher überwacht und den Indexer benachrichtigt, dass Elemente geändert wurden und eine Indizierung erforderlich ist.
ISearchItemsChangedSink
Protokollhandler benachrichtigen den Indexer über die ISearchItemsChangedSink-Schnittstelle über Änderungen. Informationen zu Datenänderungen sollten in SEARCH_ITEM_CHANGE Strukturen und SEARCH_KIND_OF_CHANGE Enumerationstypen gesammelt und dann über die OnItemsChanged-Methode der ISearchItemsChangedSink-Schnittstelle an den Indexer übermittelt werden.
Um auf diese Schnittstelle zuzugreifen, muss ein benutzerdefinierter Protokollhandler zunächst ein ISearchManager-Objekt instanziieren, um Zugriff auf das ISearchCatalogManager-Objekt zu erhalten. Von dort aus kann man ein ISearchItemsChangedSink-Objekt instanziieren und den Indexer über die Datenänderungen benachrichtigen.
Mit der OnItemsChanged-Methode können Sie Datenänderungen sammeln und an Ihren Kundendatenspeicher übermitteln, um die Indizierung zu initiieren.
Direction | Variable | Beschreibung |
---|---|---|
In | dwNumberofChanges | Gesamtzahl der Änderungen in der Benachrichtigung. |
In | DataChangeEntries[] | Alle Änderungsbenachrichtigungen in einem Array von SEARCH_ITEM_CHANGE Strukturen. |
aus | dwBatchId | Die Batch-ID, die mit Fehlern zurückgegeben wird. |
aus | hrCompletionCodes[] | Gibt an, ob jede URL für die Indizierung akzeptiert wurde. |
Die SEARCH_ITEM_CHANGE-Struktur identifiziert die Art der Änderung, die aufgetreten ist, sowie die aktuelle URL und die vorherige URL des Elements, falls zutreffend. Die -Struktur ist wie folgt definiert:
Eigenschaftenname | Eigenschaftstyp | Beschreibung |
---|---|---|
Change | SEARCH_KIND_OF_CHANGE | Der Typ der Änderung, die benachrichtigt wird. |
URL | LPWSTR | Die URL für das geänderte Objekt. |
OldURL | LPWSTR | Wenn es sich bei der Benachrichtigung um eine Verschiebung handelt, wird die alte URL angegeben und muss eindeutig sein. |
Priority | SEARCH_NOTIFICATION_PRIORITY | Die Priorität der Änderung. |
Die SEARCH_KIND_OF_CHANGE-Enumeration ist wie folgt definiert:
Enumerationswert | Wert | Beschreibung |
---|---|---|
SEARCH_CHANGE_ADD | 0 | Die Benachrichtigung gilt für eine zusätzliche URL. |
SEARCH_CHANGE_DELETE | 1 | Die Benachrichtigung gilt für das Löschen einer URL. |
SEARCH_CHANGE_MODIFY | 2 | Die Benachrichtigung lautet, dass eine URL geändert wurde. |
SEARCH_CHANGE_MOVE_RENAME | 3 | Die Benachrichtigung gilt für das Verschieben und Umbenennen eines Objekts in eine neue URL. |
SEARCH_CHANGE_SEMANTICS_DIRECTORY | 0x10000 | Die Benachrichtigung gilt für eine Container-URL. |
SEARCH_CHANGE_SEMANTICS_SHALLOW | 0x20000 | Die Benachrichtigung gilt für eine Container-URL, deren Containereigenschaften nur indiziert werden sollen. |
SEARCH_CHANGE_SEMANTICS_SECURITY | 0x40000 | Die Benachrichtigung gilt für eine URL oder Container-URL, deren Sicherheitseigenschaften geändert wurden. |
Die SEARCH_NOTIFICATION_PRIORITY-Enumeration ist wie folgt definiert:
Enumerationswert | Wert | Beschreibung |
---|---|---|
SEARCH_NORMAL_PRIORITY | 0 | Beim Indizieren der URL sollte nur eine normale Priorität verwendet werden. Diese Benachrichtigungen werden vor der normalen inkrementellen Indizierung im Hintergrund der Dateien und Speicher eines Benutzers verarbeitet. |