struttura STAT_CHUNK (filter.h)

Nota

Il servizio di indicizzazione non è più supportato a partire da Windows XP e non è disponibile per l'uso a partire da Windows 8. Usare invece Windows Search per la ricerca sul lato client e Microsoft Search Server Express per la ricerca sul lato server.

Descrive le caratteristiche di un blocco.

Sintassi

typedef struct tagSTAT_CHUNK {
  ULONG           idChunk;
  CHUNK_BREAKTYPE breakType;
  CHUNKSTATE      flags;
  LCID            locale;
  FULLPROPSPEC    attribute;
  ULONG           idChunkSource;
  ULONG           cwcStartSource;
  ULONG           cwcLenSource;
} STAT_CHUNK;

Members

idChunk

Identificatore del blocco. Gli identificatori di blocchi devono essere univoci per l'istanza corrente dell'interfaccia IFilter . Gli identificatori di blocchi devono essere in ordine crescente. L'ordine in cui i blocchi sono numerati deve corrispondere all'ordine in cui vengono visualizzati nel documento di origine. Alcuni motori di ricerca possono sfruttare la prossimità di blocchi di varie proprietà. In tal caso, l'ordine in cui vengono generati blocchi con proprietà diverse sarà importante per il motore di ricerca.

breakType

Tipo di interruzione che separa il blocco precedente dal blocco corrente. I valori provengono dall'enumerazione CHUNK_BREAKTYPE .

flags

Indica se questo blocco contiene un tipo di testo o una proprietà di tipo valore. I valori del flag vengono presi dall'enumerazione CHUNKSTATE . Se il flag CHUNK_TEXT è impostato, È consigliabile usare IFilter::GetText per recuperare il contenuto del blocco come serie di parole. Se il flag CHUNK_VALUE è impostato, IFilter::GetValue deve essere usato per recuperare il valore e considerarlo come un singolo valore di proprietà. Se il filtro determina che lo stesso contenuto viene considerato sia come testo che come valore, il blocco deve essere generato due volte in due blocchi diversi, ognuno con un set di flag.

locale

Lingua e sottolanguage associata a un blocco di testo. Le impostazioni locali di blocco vengono usate dagli indicizzatori di documenti per eseguire un'interruzione di parola corretta del testo. Se il blocco non è di tipo testo né di tipo valore con tipo di dati VT_LPWSTR, VT_LPSTR o VT_BSTR, questo campo viene ignorato.

attribute

Proprietà da applicare al blocco. Vedere FULLPROPSPEC. Se un filtro richiede che lo stesso testo disponga di più proprietà, deve generare il testo una volta per ogni proprietà in blocchi separati.

idChunkSource

ID dell'origine di un blocco. Il valore del membro idChunkSource dipende dalla natura del blocco:

  • Se il blocco è una proprietà di tipo testo, il valore del membro idChunkSource deve essere uguale al valore del membro idChunk.
  • Se il blocco è una proprietà di tipo valore interno derivata dal contenuto testuale, il valore del membro idChunkSource è l'ID blocco per il blocco del tipo di testo da cui viene derivato.
  • Se gli attributi del filtro specificano per restituire solo proprietà di tipo valore interno, non esiste alcun blocco di contenuto da cui derivare la proprietà del tipo di valore interno corrente. In questo caso, il valore del membro idChunkSource deve essere impostato su zero, ovvero un blocco non valido.

cwcStartSource

Offset da cui viene avviato il testo di origine per un blocco derivato nel blocco di origine.

cwcLenSource

Lunghezza in caratteri del testo di origine da cui deriva il blocco corrente. Un valore zero indica la corrispondenza di caratteri per carattere tra il testo di origine e il testo derivato. Un valore diverso da zero significa che non esiste una corrispondenza diretta.

Commenti

I tre membri finali (idChunkSource, cwcStartSource e cwcLenSource) vengono usati per descrivere l'origine di un blocco derivato; ovvero, uno che può essere mappato a una sezione di testo. Ad esempio, l'intestazione di un capitolo può essere sia una proprietà di tipo testo che una proprietà di tipo valore interno ? un titolo. La proprietà di tipo valore "intestazione" è un blocco derivato. Se il testo del blocco di tipo valore corrente (da una proprietà di tipo valore interno) deriva da un blocco di tipo testo, deve essere generato più di una volta.

Il segmento seguente è un esempio di come questo potrebbe accadere in un libro.

Il piccolo detective esclamava: "C'est fini!"

Confessioni

La stanza era silenziosa per diversi minuti. Dopo aver pensato molto difficile su di esso, la giovane donna chiese: "Ma come sai?"

Questo segmento potrebbe essere suddiviso in blocchi nel modo seguente.

ID Testo BreakType Flags Impostazioni locali Attributo
1 Piccolo dete N/D CHUNK_TEXT ENGLISH_UK CONTENUTO
2 ctive esclaimed, CHUNK_NO_BREAK N/D N/D N/D
3 "C'est fini!" CHUNK_EOW CHUNK_TEXT FRENCH_BELGIAN CONTENUTO
4 Confessioni CHUNK_EOC CHUNK_TEXT ENGLISH_UK CHAPTER_NAMES
5 Confessioni CHUNK_EOP CHUNK_TEXT ENGLISH_UK CONTENUTO
6 La stanza era silenziosa per diversi minuti. CHUNK_EOP CHUNK_TEXT ENGLISH_UK CONTENUTO
7 Dopo aver pensato molto difficile su di esso, la giovane donna chiese: "Ma come sai?" CHUNK_EOS CHUNK_TEXT ENGLISH_UK CONTENUTO
 

Le informazioni fornite da idChunkSource, cwcStartSource e cwcLenSource sono utili per un motore di ricerca che evidenzia i risultati. Se la query viene eseguita per una proprietà di tipo valore interno, il motore di ricerca evidenzia il testo originale da cui è stato derivato il testo della proprietà di tipo valore interno. Ad esempio, in un filtro di codice C++ il browser, quando si cerca MyFunction nella proprietà di tipo valore interno "definizioni di funzione", evidenzia l'intestazione della funzione nel file.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Intestazione filter.h

Vedi anche

CHUNKSTATE

CHUNK_BREAKTYPE

FULLPROPSPEC

Ifilter