Condividi tramite


Gestori di filtri forniti con Windows

Microsoft fornisce diversi filtri standard con Windows Search. I client chiamano questi gestori di filtro (che sono implementazioni dell'interfacciaIFilter) per estrarre testo e proprietà da un documento.

Questo argomento è organizzato come segue:

Note sull'implementazione di Windows Search

In Windows 7 e versioni successive i filtri scritti nel codice gestito vengono bloccati in modo esplicito. I filtri DEVONO essere scritti nel codice nativo a causa di potenziali problemi di controllo delle versioni CLR con il processo in cui vengono eseguiti più componenti aggiuntivi.

Implementazione di Windows 7 e 10

In Windows 7 e versioni successive è presente un nuovo comportamento che si verifica durante la registrazione di un gestore di filtri, un gestore di proprietà o una nuova estensione. Quando viene installato un nuovo gestore di proprietà e/o un gestore di filtri, i file con le estensioni corrispondenti vengono automaticamente indicizzati di nuovo.

In Windows 7 e versioni successive è consigliabile installare un gestore di filtri in combinazione con i gestori di proprietà corrispondenti e registrare il gestore di filtri prima del gestore di proprietà. La registrazione del gestore delle proprietà avvia la reindicizzazione immediata dei file indicizzati in precedenza senza prima richiedere un riavvio e sfrutta i gestori di filtri registrati in precedenza allo scopo dell'indicizzazione del contenuto.

Se viene installato solo un gestore di filtri senza un gestore di proprietà corrispondente, la reindicizzazione automatica si verifica dopo un riavvio del servizio di indicizzazione o un riavvio del sistema.

Per i flag di descrizione delle proprietà specifici di Windows 7, vedere gli argomenti di riferimento seguenti: GETPROPERTYSTOREFLAGS, PROPDESC_COLUMNINDEX_TYPE e PROPDESC_SEARCHINFO_FLAGS.

Implementazione di Windows Vista

In Windows Vista e versioni precedenti, l'installazione di un IFilter o gestore proprietà non avvia una nuova indicizzazione degli elementi esistenti a meno che un fornitore di software indipendente (ISV) non chiami in modo esplicito una ricompilazione o una reindicizzazione degli URL corrispondenti.

Esistono due differenze principali tra applicazioni legacy, ad esempio servizio di indicizzazione e applicazioni più recenti, ad esempio Windows Search, che è necessario tenere presente quando si implementano filtri:

Prima di tutto, Windows Vista e Windows Search 3.0 e versioni successive richiedono l'uso di IPersistStream per i motivi seguenti:

  • Per garantire prestazioni e compatibilità future.
  • Per aumentare la sicurezza. I filtri implementati con IPersistStream sono più sicuri perché il contesto in cui viene eseguito il filtro non richiede i diritti per aprire i file sul disco o in rete.

Anche se Windows Search usa solo IPersistStream, è anche possibile includere IPersistFile Interface e/o IPersistStorage Interface implementazioni nei filtri per la compatibilità con le versioni precedenti.

La seconda differenza principale è che Windows Vista e Windows Search 3.0 e versioni successive hanno un nuovo Property System che usa gestori di proprietà per enumerare le proprietà degli elementi.

Tuttavia, in alcuni casi è necessario implementare un filtro che gestisce sia il contenuto che le proprietà per:

  • Supportare le implementazioni mssearch legacy.
  • Attraversa i collegamenti.
  • Mantenere le informazioni sulla lingua.
  • Filtra in modo ricorsivo gli elementi incorporati.

In queste situazioni è necessaria un'implementazione completa del filtro, incluso il metodo IFilter::GetValue per accedere ai valori delle proprietà.

Implementazione legacy

Come indicato in precedenza, Windows Vista e Windows Search includono un nuovo sistema di proprietà che incapsula le proprietà di un elemento separate dal contenuto di un elemento. Questo sistema di proprietà non esiste nelle versioni precedenti di Microsoft Windows Desktop Search (WDS) 2.x. Se il filtro deve supportare altre applicazioni come descritto in precedenza, potrebbe essere necessario gestire sia il contenuto che le proprietà.

Per altre informazioni sullo sviluppo di un filtro compatibile, vedere gli argomenti seguenti, IFilter (per le applicazioni legacy)e Sviluppo di componenti aggiuntivi filtro (per le applicazioni legacy).

Filtri di Windows Search

Microsoft fornisce diversi filtri standard con Windows Search. Il contenuto della DLL IFilter è riepilogato nella tabella seguente. Facendo clic sul nome di un gestore di filtri, si passa alla descrizione per tale implementazione IFilter.

Gestore filtri File filtrati IFilter DLL
gestore filtri MIME Estensione Mime (Multipurpose Internet Mail Extension) mimefilt.dll
gestore di filtri HTML HTML 3.0 o versioni precedenti nlhtml.dll
gestore filtri documento Microsoft Word, Excel, PowerPoint offfilt.dll
gestore filtri testo normale File di testo normale - Filtro IFilter predefinito query.dll
gestore filtri binario o Null File binari - IFilter Null query.dll

Gestore filtri MIME

Il gestore di filtri MIME (in mimefilt.dll) estrae le informazioni di testo e proprietà dai file con estensioni .eml, mht e mhtml.

Gestore filtri HTML

Il gestore di filtri HTML (in nlhtml.dll) estrae le informazioni di testo e proprietà dalla classe "htmlfiles" in modo che possa essere indicizzato da Windows Search. Per una descrizione dell'associazione tra IFilter e il tipo di file, vedere "Ricerca della DLL IFilter per un file" in Registrazione dei gestori di filtri.

È possibile usare la funzionalità tag META dei documenti HTML per trasmettere richieste speciali di gestione al HTML IFilter. META tag si verificano vicino all'inizio di un file HTML all'interno dei tag HEAD ... /HEAD, come illustrato nell'esempio seguente.

   <head>
     <META NAME="DESCRIPTION"
           CONTENT="This text appears on the results page as the document's summary.">
   </head>

Alcuni tag di META HTML vengono mappati automaticamente ai valori noti del set di proprietà e dell'ID proprietà (PID) in modo che le query su queste proprietà esequisino il contenuto mappato. Alcuni esempi sono elencati nella tabella seguente. Per un elenco delle proprietà di sistema che è possibile usare per i formati di file, vedere System-Defined Proprietà per formati di file personalizzati.

Esempio di proprietà Mappato a
meta name="author" content="ruth" Proprietà author nel set di proprietà Summary Information.
meta name="subject" content="word processing" Proprietà subject nel set di proprietà Summary Information.
meta name="keywords" content="fonts, serif" Proprietà della parola chiave nel set di proprietà Summary Information.
meta name="ms.category" content="fiction" Proprietà category nel set di proprietà Summary Information del documento.

Alcune funzionalità dellaIFilterHTML sono elencate nella tabella seguente.

Compito Azione Esempio
Creazione di astrazioni speciali dai file Usare il tag META NAME="DESCRIPTION"... per indicare al IFilter di usare la stringa che segue la parola chiave CONTENT come astrazione del documento.

Nota:
Il processo di filtro può generare astrazioni per ogni file filtrato, che per impostazione predefinita è un set di caratteri all'inizio del file.


<head>
  <META NAME="DESCRIPTION" CONTENT="This text will appear on the results page as the document's summary.">
</head>
 
Impedire che singoli file vengano filtrati Aggiungere un tag meta name al file.
  <meta name="robots" content="noindex">
Impostazione del codice linguistico per un file (per assicurarsi che il sistema scelga i word breaker e i file di parole non significative corretti) Aggiungere il tag di meta name seguente al file, in cui il campo contenuto specifica il codice della lingua appropriato (in caratteri o usando il valore delle impostazioni locali).
<meta name="ms.locale" content="EN">
<meta name="ms.locale" content=1033>

Gestore filtri documento

Il gestore di filtri documento (in offilt.dll) filtra i file per alcune estensioni di documenti in Microsoft Office. Questi includono file con le estensioni .doc, .mdb, .ppte xlt, ad esempio.

Gestore filtro testo normale

Per i file di testo normale, Windows Search usa il gestore di filtri di testo, che filtra sia le proprietà di sistema (ad esempio i nomi di file) che il contenuto di un file. Quando un tipo di file non dispone di un'associazioneIFilternel Registro di sistema, Windows Search indicizza solo le proprietà shell per il file. Tuttavia, l'utente può utilizzare la Opzioni avanzate di nel pannello di controllo opzioni di indicizzazione per Proprietà indice o Proprietà indice e contenuto dei file.

schermata che mostra la finestra di dialogo Opzioni avanzate

Se l'utente sceglie questa opzione per un tipo di file senza un IFilter associato, il gestore del filtro di testo viene usato per estrarre il contenuto del file. Il gestore di filtri di testo non riconosce alcun formato di documento; quando si filtra il contenuto di un file, il file viene trattato come una sequenza di caratteri. Verifica la presenza del contrassegno di byte-order Unicode all'inizio del file.

Gestore filtro binario o Null

Quando viene rilevato un file binario registrato, viene utilizzato il gestore di filtri Null. Il gestore di filtri Null recupera solo le proprietà di sistema. Il contenuto di un file binario non viene filtrato. Esempi di proprietà di sistema sono FileName, LastWriteTime, FileSizee attributi .

Risorse aggiuntive

sviluppo di gestori di filtri

Informazioni sui gestori di filtri in Windows Search

procedure consigliate per la creazione di gestori di filtri in Windows Search

la restituzione di proprietà da un gestore di filtri

Implementazione di gestori di filtri in Windows Search

registrazione dei gestori di filtri

test dei gestori di filtri