Utilizzo del Gestore dei Cataloghi
Le interfacceISearchCatalogManagere ISearchCatalogManager2 forniscono metodi per gestire un catalogo di ricerca, ad esempio causando la reindicizzazione o l'impostazione dei timeout. Mentre Windows Search usa attualmente un solo catalogo, questa interfaccia è stata progettata per offrire un maggiore controllo per la gestione indipendente di più cataloghi. L'interfaccia gestisce il catalogo nei modi seguenti:
- Accesso ad altre interfacce: recupero di altre interfacce correlate alla ricerca richieste dal Crawl Scope Manager, notifiche delle modifiche dei dati e interfaccia ISearchQueryHelper.
- Contenuto del catalogo: garantire che i nuovi dati vengano indicizzati e che altre applicazioni e componenti funzionino correttamente forzando una reindicizzazione di tutto o parte del catalogo o reimpostando l'intero catalogo.
- Proprietà del catalogo: impostazione delle proprietà che determinano il modo in cui il catalogo gestisce i timeout durante la connessione ai gestori di protocollo e la modalità di gestione dei segni diacritici nelle ricerche.
- Stato del catalogo: ottenere informazioni sul catalogo, inclusi lo stato, le dimensioni e lo stato dell'attività corrente.
Questo argomento è organizzato come segue:
- accesso alle interfacce correlate
- Gestione del contenuto del catalogo
- Gestione dello stato del catalogo
- Gestione delle proprietà del catalogo
- in esecuzione in modalità con privilegi elevati
- argomenti correlati
Accesso alle interfacce correlate
Alcune interfacce utili nella piattaforma Windows Search richiedono un'istanza di Gestione cataloghi prima di poterle usare. Per creare un Gestore cataloghi per un catalogo specificato, chiamare il metodo ISearchManager::GetCatalog. I metodi del Gestore del catalogo possono quindi essere utilizzati per istanziare e restituire interfacce basate sul catalogo specificato.
Metodo | Descrizione |
---|---|
GetQueryHelper | Ottiene un'istanza dell'interfaccia ISearchQueryHelper per il catalogo corrente, consentendoti di costruire query con facilità. |
GetCrawlScopeManager | Ottiene un'istanza di ISearchCrawlScopeManager per questo catalogo di ricerca, per consentire agli sviluppatori di modificare l'ambito di ricerca per indicizzazione dell'indicizzatore di Windows Search. |
GetItemsChangedSink | Ottiene un'istanza dell'interfaccia ISearchItemsChangedSink, che le applicazioni client usano per notificare all'indicizzatore le modifiche quando il client desidera ottenere informazioni sull'indicizzazione dello stato dell'elemento per supportare le notifiche gestite dal provider. Per altre informazioni, vedere Notifica dell'indice delle modifiche. |
GetPersistentItemsChangedSink | Ottiene un'istanza di ISearchPersistentItemsChangedSink, che le applicazioni client usano per notificare all'indicizzatore le modifiche quando il client non desidera indicizzare le informazioni sullo stato (notifiche gestite dall'indicizzatore). Per ulteriori informazioni, vedere Comunicazione dell'indice delle modifiche. |
Gestione del contenuto del catalogo
Esistono due attività principali coinvolte nella gestione del catalogo: la reindicizzazione di tutti o alcuni degli URL nell'ambito della ricerca per indicizzazione dell'indicizzatore e la reimpostazione dell'intero catalogo sottostante. Quando si reindicizzano gli URL, i dati precedenti rimangono nel catalogo finché non vengano sostituiti da nuovi dati. Quando si reimposta il catalogo, l'intero catalogo viene ricompilato e tutti gli URL nell'ambito della scansione vengono riindicizzati. Questo processo può richiedere molto tempo e deve essere usato solo come ultima risorsa per risolvere i problemi, ad esempio un indice probabilmente danneggiato.
Quando si installa una nuova applicazione, un gestore del protocollo o un filtro, l'applicazione di installazione deve aggiungere la directory o la radice all'ambito di indicizzazione per assicurarsi che l'indicizzatore includa i dati relativi all'applicazione. Se i dati non vengono visualizzati nel catalogo dopo che l'indicizzatore ha sottoposto a ricerca per indicizzazione l'ambito di ricerca per indicizzazione, è necessario prima assicurarsi che la posizione dei dati sia inclusa nell'ambito della ricerca per indicizzazione. È possibile aggiungerlo usando l'interfaccia utente per le opzioni di Windows Search oppure il gestore dell'ambito di ricerca Crawl Scope Manager. Se la posizione sembra trovarsi nell'ambito della ricerca per indicizzazione, è possibile forzare manualmente una reindicizzazione di tutti gli URL nell'ambito della ricerca per indicizzazione o un subset dell'indicizzatore, usando i metodi seguenti dell'interfaccia ISearchCatalogManager.
Metodo di reindicizzazione | Descrizione |
---|---|
ISearchCatalogManager::Reindex | Indicizza nuovamente tutti gli URL nel catalogo. Le informazioni precedenti rimarranno finché non verranno sostituite da nuove informazioni. |
ISearchCatalogManager::ReindexMatchingURLs ISearchCatalogManager::ReindexSearchRoot |
Reindicizza gli URL che corrispondono al modello o iniziano da una specifica radice (ad esempio, file:///C:\Nomecartella\Sottocartella\). Ciò è utile per la riscrittura di tutti gli elementi in una determinata directory o con una particolare estensione, come quando viene installata un'applicazione. |
PrioritizeMatchingURLs | Indica all'indicizzatore di classificare in ordine di priorità gli elementi con URL che corrispondono a un criterio specificato per completare altre attività di indicizzazione. |
Reimpostazione dell'indice. È possibile reimpostare l'intero indice con una chiamata a ISearchCatalogManager::Reset. In questo modo il catalogo sottostante viene reimpostato ricompilando i database ed eseguendo un indice completo di tutti gli URL nell'ambito della ricerca per indicizzazione. Questo processo può richiedere molto tempo e deve essere usato solo come ultima risorsa per risolvere i problemi, ad esempio un indice probabilmente danneggiato.
Importante
A causa del rallentamento dell'indicizzazione che questi metodi possono causare, devono essere usati attentamente quando si tenta di identificare i problemi di indicizzazione o catalogo. Assicurarsi prima di tutto che le radici di ricerca e le regole di ambito vengano aggiunte in Gestione ambito ricerca per indicizzazione e quindi assicurarsi che il bit FANCI (attributo file non indicizzato) sia impostato correttamente per file e cartelle. Se hai confermato che queste informazioni sono corrette, prova prima ReindexSearchRoot e Reindex alla fine. Se nessuna di queste operazioni funziona, provare a reimpostare come ultima risorsa.
Per informazioni correlate, vedere Notifica dell'indice delle modifichee l'esecuzione di query sull'indice con ISearchQueryHelper
Gestione dello stato del catalogo
Il Catalog Manager può essere usato per ottenere lo stato del catalogo per le applicazioni che vogliono personalizzare il modo in cui viene gestito il catalogo, ad esempio un'applicazione personalizzata di monitoraggio dello "Stato del Catalogo". Tuttavia, Gestione cataloghi non è in genere necessario per la maggior parte degli scenari di sviluppo correlati alla ricerca. Gli usi comuni sono per un'applicazione di monitoraggio "Stato catalogo" o per un'applicazione di tipo Pannello di controllo.
Nella tabella seguente vengono descritti i metodi di ISearchCatalogManager usati per la gestione dello stato del catalogo.
Metodo | Descrizione |
---|---|
URLBeingIndexed | Ottiene l'URL attualmente indicizzato. Questo metodo sarebbe utile se si tentasse di identificare se l'indicizzatore era "bloccato" su un elemento. |
Numero di articoli | Ottiene il numero di elementi nel catalogo. |
NumeroDiElementiDaIndicizzare | Recupera le informazioni seguenti sugli elementi da indicizzare:
|
GetCatalogStatus | Ottiene lo stato del catalogo e restituisce un valore di enumerazione che restituisce lo stato corrente. Di seguito sono riportati i possibili stati del catalogo:
|
get_Name | Ottiene il nome del catalogo corrente specificato nel metodo ISearchManager::GetCatalog. Attualmente, l'unico catalogo supportato è SystemIndex. |
Gestione delle proprietà del catalogo
Con Gestione cataloghi è possibile gestire tre proprietà del catalogo:
- Sensibilità diacritica. I segni diacritici sono segni accentati aggiunti alle lettere per indicare il significato o la pronuncia di una parola. Questa proprietà determina se il catalogo è sensibile ai segni diacritici ed è importante quando l'utente o gli utenti eseguono ricerche e indicizzano il testo in più lingue. Ad esempio, con questa proprietà impostata su FALSE, il catalogo considererebbe "resume" e "resumé" come se fossero la stessa parola.
- Timeout della connessione. Questa proprietà rappresenta la quantità di tempo di attesa di una risposta di connessione da un server o da un archivio dati, come rappresentato in una struttura TIMEOUT_INFO. È possibile utilizzare questa proprietà per ottimizzare Windows Search.
- Timeout dei dati Questa proprietà rappresenta il tempo di attesa per una transazione di dati tra l'indicizzatore e un gestore di protocollo o un filtro, come rappresentato in una struttura TIMEOUT_INFO. Se questo tempo è trascorso, il processo del daemon dei filtri viene terminato per evitare deadlock e altri problemi di risorse.
Le ultime due proprietà sono destinate principalmente all'uso futuro. Ognuna di queste proprietà include metodi get
e put
.
Metodo | Descrizione |
---|---|
get_DiacriticSensitivity / put_DiacriticSensitivity |
TRUE se il catalogo deve distinguere le parole con segni diacritici. FALSE se il catalogo deve ignorare i segni diacritici. La modifica di questa proprietà richiede la ricompilazione dell'indice perché le chiavi dell'indice potrebbero non essere valide. |
get_ConnectTimeout / put_ConnectTimeout |
Tempo, espresso in secondi, in cui l'indicizzatore deve attendere una risposta di connessione da un server o da un archivio dati. L'impostazione di questo valore troppo elevato può causare ritardi se molti siti non rispondono. Impostare un valore troppo basso può portare a non indicizzare alcuni siti. |
get_DataTimeout / put_DataTimeout |
Tempo, in secondi, in cui l'indicizzatore deve attendere una transazione di dati. |
Esecuzione in modalità con privilegi elevati
Qualsiasi chiamata al metodo che aggiorna il SystemIndex richiede che l'applicazione venga eseguita con privilegi elevati. In caso contrario, l'applicazione avrà esito negativo con un errore di accesso negato.
Argomenti correlati
Interfacce per la Gestione dell'Indice