Notifica dell'indice delle modifiche (funzionalità dell'ambiente Windows legacy)
Nota
Windows Desktop Search 2.x è una tecnologia obsoleta originariamente disponibile come componente aggiuntivo per Windows XP e Windows Server 2003. Nelle versioni successive usare invece Windows Search .
Con Microsoft Windows Desktop Search (WDS) 2.6, i gestori di protocolli per un determinato archivio dati possono indicare all'indicizzatore WDS quando i dati nell'archivio sono stati modificati. Ciò migliora le prestazioni assicurando che l'indicizzatore non esegue la ricerca per indicizzazione dell'intero archivio negli indici incrementali. Usando le API di notifica, i gestori del protocollo possono notificare all'indicizzatore che un elemento è stato spostato o eliminato e può aggiungere ambiti alla coda di indicizzazione di WDS Indexer che richiede l'indicizzazione. La notifica è utile per applicazioni come posta elettronica, in cui il gestore del protocollo monitora l'archivio e notifica all'indicizzatore che gli elementi sono stati modificati e richiedono l'indicizzazione.
ISearchItemsChangedSink
I gestori del protocollo notificano all'indicizzatore le modifiche tramite l'interfaccia ISearchItemsChangedSink . Le informazioni sulle modifiche ai dati devono essere raccolte in SEARCH_ITEM_CHANGE struct e SEARCH_KIND_OF_CHANGE tipi di enumerazione e quindi comunicati all'indicizzatore tramite il metodo OnItemsChanged dell'interfaccia ISearchItemsChangedSink .
Per accedere a questa interfaccia, i gestori di protocolli personalizzati devono creare prima un'istanza di un oggetto ISearchManager per ottenere l'accesso all'oggetto ISearchCatalogManager . Da qui, è possibile creare un'istanza di un oggetto ISearchItemsChangedSink e inviare una notifica all'indicizzatore delle modifiche ai dati.
Il metodo OnItemsChanged consente di raccogliere e comunicare le modifiche ai dati dell'archivio dati del cliente per avviare l'indicizzazione.
Direction | Variabile | Descrizione |
---|---|---|
In | dwNumberofChanges | Numero totale di modifiche nella notifica. |
In | DataChangeEntries[] | Tutte le notifiche di modifica in una matrice di strutture SEARCH_ITEM_CHANGE. |
In uscita | dwBatchId | ID batch che verrà passato di nuovo con errori. |
In uscita | hrCompletionCodes[] | Indica se ogni URL è stato accettato per l'indicizzazione. |
La struttura SEARCH_ITEM_CHANGE identifica il tipo di modifica che si è verificato, nonché l'URL corrente dell'elemento e l'URL precedente, se applicabile. La struttura è definita come segue:
Nome proprietà | Tipo di proprietà | Descrizione |
---|---|---|
Modifica | SEARCH_KIND_OF_CHANGE | Tipo di modifica che viene notificata. |
URL | LPWSTR | URL dell'oggetto modificato. |
OldURL | LPWSTR | Se la notifica è uno spostamento, l'URL precedente viene fornito e deve essere univoco. |
Priorità | SEARCH_NOTIFICATION_PRIORITY | Priorità della modifica. |
L'enumerazione SEARCH_KIND_OF_CHANGE è definita come segue:
Valore enum | Valore | Descrizione |
---|---|---|
SEARCH_CHANGE_ADD | 0 | La notifica è per un URL aggiuntivo. |
SEARCH_CHANGE_DELETE | 1 | La notifica è per l'eliminazione di un URL. |
SEARCH_CHANGE_MODIFY | 2 | La notifica è che è stato modificato un URL. |
SEARCH_CHANGE_MOVE_RENAME | 3 | La notifica è per lo spostamento e la ridenominazione di un oggetto in un nuovo URL. |
SEARCH_CHANGE_SEMANTICS_DIRECTORY | 0x10000 | La notifica è per un URL del contenitore. |
SEARCH_CHANGE_SEMANTICS_SHALLOW | 0x20000 | La notifica è per un URL del contenitore che deve avere solo le proprietà del contenitore indicizzate. |
SEARCH_CHANGE_SEMANTICS_SECURITY | 0x40000 | La notifica è per un URL o un URL contenitore con proprietà di sicurezza modificate. |
L'enumerazione SEARCH_NOTIFICATION_PRIORITY è definita come segue:
Valore enum | Valore | Descrizione |
---|---|---|
SEARCH_NORMAL_PRIORITY | 0 | È consigliabile usare solo una priorità normale durante l'indicizzazione dell'URL. Queste notifiche vengono elaborate prima dell'indicizzazione incrementale normale in background dei file e degli archivi di un utente. |