Condividi tramite


Gestione delle regole di ambito

Gestione ambito ricerca per indicizzazione (CSM) consente di definire regole di ambito che includono o escludino gli URL dall'ambito di ricerca per indicizzazione di Windows Search.

Csm consente di eseguire le operazioni seguenti:

  • Aggiungere nuove regole di ambito al set di regole di lavoro
  • Rimuovere le regole di ambito esistenti
  • Enumerare le regole di ambito predefinite
  • Determinare se un URL specifico è incluso o escluso dall'ambito della ricerca per indicizzazione o ha una regola di ambito padre o figlio

 

Vengono inoltre presentati gli argomenti seguenti:

Informazioni sulle regole di ambito

Una regola di ambito è una regola che include o esclude gli URL all'interno di una radice di ricerca dalla ricerca per indicizzazione e indicizzati. Le regole di inclusione fanno in modo che l'indicizzatore includa tale URL nell'ambito dello scrawl e le regole di esclusione causino l'esclusione dell'URL (e dei relativi elementi figlio) dall'ambito di ricerca per indicizzazione.

Si supponga, ad esempio, di aver installato una nuova applicazione i cui file di dati si trovano nella cartella WorkteamA\ProjectFiles in un computer locale. Si supponga di volere tutti gli elementi all'interno della cartella ProjectFiles indicizzati, ad eccezione degli elementi nella sottocartella Prototipi. In questo caso, è necessaria una regola di inclusione per myPH:///C:\WorkteamA\ProjectFiles\ e una regola di esclusione per myPH:///C:\WorkteamA\ProjectFiles\Prototypes\.

Esistono tre tipi di regole, con l'ordine di precedenza seguente:

  1. Criteri di gruppo regole vengono impostate dagli amministratori e possono eseguire l'override di tutte le altre regole.
  2. Le regole utente vengono impostate dagli utenti che modificano l'ambito nell'interfaccia utente delle opzioni di Windows Search. Gli utenti o altre applicazioni possono rimuovere tutte le regole utente e ripristinare le regole predefinite.
  3. Le regole predefinite vengono in genere impostate da un'applicazione per definire un ambito predefinito. Ad esempio, le regole predefinite possono essere impostate quando viene aggiunto un nuovo gestore di protocollo o un nuovo contenitore al sistema.

Insieme, questi tipi di regole comprendono il set di regole di lavoro da cui Gestione ambito ricerca per indicizzazione genera l'elenco completo degli URL da sottoporre a ricerca per indicizzazione. Anche se le regole predefinite possono essere sostituite dalle regole di Criteri di gruppo e dalle regole utente, vengono mantenute nel proprio set di regole predefinite, che è possibile ripristinare in qualsiasi momento. L'indicizzatore esegue la ricerca per indicizzazione degli URL dal set di regole di lavoro e aggiunge elementi, proprietà e contenuto al catalogo.

Nota

Gli utenti con accesso a Pannello di controllo possono modificare le regole tramite tale interfaccia. Di conseguenza, le applicazioni che offrono la gestione dell'ambito devono sempre ottenere le regole direttamente dal CSM usando i metodi di enumerazione anziché basarsi su una copia salvata delle regole utente.

 

Le regole di esclusione possono definire GLI URL del modello con il carattere jolly '*'; ad esempio: file:///C:\ProjectA\*\. Una regola di esclusione che usa questo modello impedisce all'indicizzatore di eseguire la ricerca per indicizzazione di tutte le cartelle nella directory ProjectA. Per un esempio più complesso, si supponga che sia presente una regola di inclusione per file:///C:\ProjectA\ e una regola di criteri di esclusione per file:///C:\ProjectA\*\data\*. In questo caso, l'indicizzatore esegue la ricerca per indicizzazione degli elementi in:

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

Tuttavia, l'indicizzatore non esegue la ricerca per indicizzazione degli elementi in:

  • C:\ProjectA\version1\data\

 

Prima di iniziare

Prima di usare una delle interfacce di Gestione ambito ricerca per indicizzazione, è necessario eseguire i passaggi prerequisiti seguenti:

  1. Creare l'oggetto CSearchManager e ottenere l'interfaccia ISearchManager .
  2. Chiamare ISearchManager::GetCatalog per "SystemIndex" per ottenere un'istanza dell'interfaccia ISearchCatalogManager .
  3. Chiamare ISearchCatalogManager::GetCrawlScopeManager per ottenere un'istanza dell'interfaccia ISearchCrawlScopeManager .

Dopo aver apportato modifiche a Crawl Scope Manager, è necessario chiamare il metodo ISearchCrawlScopeManager::SaveAll . Questo metodo non accetta parametri e restituisce S_OK in caso di esito positivo.

 

Aggiunta di regole di ambito

Le regole di lavoro impostate per CSM includono regole utente e predefinite, nonché le regole forzate dai criteri di gruppo. Le regole utente vengono configurate dagli utenti in un'interfaccia utente e le regole predefinite possono essere impostate da uno degli elementi seguenti:

  • Criteri di gruppo implementati da un amministratore di sistema (che non usano l'interfaccia ISearchCrawlScopeManager ).
  • Installazione o aggiornamento di un'applicazione come Windows Search o un gestore di protocolli
  • Applicazione di installazione per l'aggiunta di un nuovo archivio dati o contenitore

ISearchCrawlScopeManager fornisce due metodi per aggiungere nuove regole di ambito, come descritto nella tabella seguente. I percorsi per le regole di inclusione per il file system devono terminare con una barra rovesciata '\' (ad esempio, file:///C:\files\) e i percorsi per le regole di esclusione devono terminare con un asterisco (ad esempio, file:///c:\files\*). Solo le regole di esclusione possono contenere URL dei criteri. Inoltre, è consigliabile includere gli identificatori di sicurezza (SID) degli utenti nei percorsi, per una migliore sicurezza. I percorsi per utente sono più sicuri perché le query vengono quindi eseguite in un processo per utente, assicurandosi che un utente non possa visualizzare gli elementi indicizzati dalla posta in arrivo di un altro utente, ad esempio.

Nella tabella seguente vengono descritti i metodi dell'interfaccia ISearchCrawlScopeManager usata per aggiungere nuove regole di ambito.

Metodo Descrizione
AddUserScopeRule Aggiunge una regola per un URL, come specificato dall'utente. Queste regole sostituiscono le regole predefinite. Usare questo metodo se è stata implementata un'interfaccia utente che consente agli utenti di gestire le proprie regole di ambito e URL.
AddDefaultScopeRule Aggiunge una regola per un URL, come specificato da un'altra applicazione come un gestore di protocollo. Usare questo metodo quando è stato implementato un nuovo gestore di protocollo o è stato aggiunto un nuovo archivio dati. Queste regole possono essere sostituite dalle regole utente.

 

Ogni metodo accetta un URL in una posizione indicizzata e flag che determinano se l'URL deve essere incluso o escluso. Il parametro fFollowFlags è riservato per uso futuro. Quando si aggiunge una nuova regola di ambito e Gestione ambito ricerca per indicizzazione determina che la regola esiste già (in base all'URL o al modello fornito), il set di regole di lavoro viene aggiornato in modo che (1) la regola precedente venga sostituita dalla nuova regola e (2) tutte le regole utente che lo contraddicono vengono rimosse.

Mancia: Anche se la radice file:// è inclusa per impostazione predefinita nell'ambito della ricerca per indicizzazione, i file di programma non vengono indicizzati per impostazione predefinita. Di conseguenza, le applicazioni con dati salvati nella directory Programmi devono aggiungere il percorso come regola predefinita.

Note sulle regole utente

Se una nuova regola utente corrisponde a una regola predefinita esistente, la nuova regola utente sostituisce la regola predefinita nel set di regole di lavoro. Se la nuova regola utente corrisponde a una regola utente esistente, la regola utente precedente viene sostituita.

L'impostazione del flag fOverrideChildren ha i risultati seguenti nel set di regole di lavoro:

  • TRUE comporta la rimozione di tutte le regole figlio dal set di regole di lavoro (regole utente e regole predefinite).
  • FALSE comporta l'aggiunta di nuovo alle regole di lavoro impostate tutte le regole predefinite figlio della nuova regola utente. Se una regola predefinita figlio è un'inclusione e la nuova regola utente è un'esclusione, la regola predefinita viene modificata in una regola utente di inclusione.

 

Rimozione delle regole di ambito

È possibile usare l'interfaccia ISearchCrawlScopeManager per rimuovere una regola di ambito dal set di regole di lavoro. Questa interfaccia fornisce i due metodi seguenti per rimuovere le regole di ambito.

Metodo Descrizione
RemoveScopeRule Rimuove una regola utente per un URL specificato dal set di regole di lavoro. Se la regola utente è un duplicato di o esegue l'override di una regola predefinita, la regola predefinita rimane nel set di regole di lavoro.
RemoveDefaultScopeRule Rimuove una regola predefinita per un URL specificato dal set di regole di lavoro e dal set di regole predefinito. Dopo aver chiamato questo metodo, non è possibile ripristinare questa regola predefinita usando RevertToDefaultScopes.

 

Ogni metodo accetta un URL e un flag che indica se la regola da rimuovere è una regola di inclusione o esclusione. Questi metodi restituiscono un errore se non viene trovata una regola con l'URL e il flag di inclusione/esclusione.

Mancia: Se si desidera rimuovere completamente un ambito dall'ambito di ricerca per indicizzazione, usare il metodo RemoveRoot , che rimuove la radice di ricerca e tutte le regole di ambito associate. Questa operazione viene eseguita durante la disinstallazione, ad esempio, è considerata una procedura consigliata.

È anche possibile rimuovere tutte le sostituzioni del set di utenti di una radice di ricerca e ripristinare le regole di ambito predefinite e radice di ricerca originali. Per altre informazioni, vedere la sezione successiva.

Nota

In Windows Vista, se gli utenti vengono rimossi tramite profili utente in Pannello di controllo, CSM rimuove tutte le regole e le radici che includono il SID e rimuove gli elementi indicizzati dal catalogo. In Windows XP è necessario rimuovere manualmente le radici e le regole degli utenti.

 

 

Ripristino delle regole predefinite

Il ripristino delle regole predefinite rimuove tutte le regole utente per un URL o una radice e ripristina tutte le regole predefinite nel set di regole di lavoro. Non rimuove tuttavia le regole impostate da Criteri di gruppo. Il metodo RevertToDefaultScopes non accetta parametri e restituisce un codice di errore se non è in grado di ripristinare le regole predefinite.

 

Enumerazione delle regole di ambito

CsM enumera le regole di ambito usando un'interfaccia di enumeratore di tipo COM standard, IEnumSearchScopeRules . È possibile usare questa interfaccia per enumerare le regole di ambito per diversi scopi. Ad esempio, potrebbe essere necessario visualizzare l'intero set di regole di lavoro in un'interfaccia utente oppure individuare se una regola o l'elemento figlio di una regola si trova già nell'ambito della ricerca per indicizzazione.

 

Regole di ambito di traccia

Csm consente anche di determinare se un URL specificato è incluso nell'ambito della ricerca per indicizzazione e se ha una regola di ambito padre o figlio. È anche possibile scoprire perché un URL è incluso o escluso dall'ambito della ricerca per indicizzazione. Questi metodi non sono progettati per essere usati con gli URL dei criteri.

Nella tabella seguente vengono descritti i metodi di ISearchCrawlScopeManager usati per aggiungere nuove regole di ambito.

Metodo Descrizione
GetParentScopeVersionId Ottiene l'ID versione dell'URL di inclusione padre. È possibile usare questo metodo per verificare se l'ambito padre è stato modificato dopo l'ultima verifica.
Esempio: se un'applicazione di posta elettronica usa notifiche gestite dal provider, potrebbe ottenere la versione dell'ambito padre prima che venga chiusa e controllare di nuovo la versione all'apertura. L'applicazione può quindi determinare se deve eseguire il push di un nuovo set di notifiche all'indicizzatore.
HasChildScopeRule Restituisce TRUE se l'URL specificato ha una regola figlio (una regola che si applica a un elemento figlio a qualsiasi livello all'interno della gerarchia URL).
Esempio: se l'URL è file:///C:\Folder\, questo metodo restituisce TRUE se csm ha una regola di ambito specifica per file:///C:\Folder\Subfolder\.
HasParentScopeRule Restituisce TRUE se l'URL specificato ha una regola padre (una regola che si applica a un elemento padre a qualsiasi livello nella gerarchia url).
Esempio: se l'URL è file:///C:\Folder\Subfolder, questo metodo restituisce TRUE se csm ha una regola di ambito specifica per file:///C:\Folder\.
IncludedInCrawlScope Restituisce TRUE se l'URL specificato è incluso nell'ambito della ricerca per indicizzazione.
IncludedInCrawlScopeEx Restituisce un valore dall'enumerazione CLUSION_REASON che spiega perché l'URL è incluso o escluso dall'ambito di ricerca per indicizzazione e recupera il valore TRUE se l'URL è incluso nell'ambito della ricerca per indicizzazione. Questo metodo consente di identificare i conflitti nel set di regole di lavoro.

 

 

Nota

I metodi IncludedInCrawlScope e IncludedInCrawlScopeEx determinano se l'URL verrà sottoposto a ricerca per indicizzazione esclusivamente in base alle regole nel CSM. Esistono altri motivi per cui un URL non viene sottoposto a ricerca per indicizzazione, ad esempio il bit FANCI impostato, ovvero un utente non ha consentito l'indicizzazione rapida nella finestra di dialogo Proprietà della cartella.

 

Se si ritiene che un percorso di file debba essere escluso, ma è elencato come incluso, assicurarsi che le regole di esclusione terminano con "<path>\*". Se si ritiene che sia necessario includere un file o un percorso di file, ma non lo è, assicurarsi di controllare l'impostazione di bit FANCI per il file o il percorso. A tale scopo, fare clic con il pulsante destro del mouse sul file o sul percorso del file e scegliere Proprietà, quindi assicurarsi che la casella di controllo Per la ricerca rapida, consentire al servizio di indicizzazione di indicizzare questa cartella . Se il file o il percorso del file non è contrassegnato per l'indicizzazione, non verrà indicizzato anche se si trova in una regola di inclusione.

Riferimento

ISearchCrawlScopeManager

ISearchCrawlScopeManager2

ISearchScopeRule

IEnumSearchScopeRules

Informazioni concettuali

Gestione delle radici di ricerca