structure STAT_CHUNK (filter.h)

Notes

Le service d’indexation n’est plus pris en charge à partir de Windows XP et n’est pas disponible à partir de Windows 8. Au lieu de cela, utilisez Recherche Windows pour la recherche côté client et Microsoft Search Server Express pour la recherche côté serveur.

Décrit les caractéristiques d’un segment.

Syntaxe

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

Membres

idChunk

Identificateur de segment. Les identificateurs de segment doivent être uniques pour le instance actuel de l’interface IFilter. Les identificateurs de segment doivent être dans l’ordre croissant. L’ordre dans lequel les segments sont numérotés doit correspondre à l’ordre dans lequel ils apparaissent dans le document source. Certains moteurs de recherche peuvent tirer parti de la proximité de blocs de différentes propriétés. Si c’est le cas, l’ordre dans lequel les segments avec des propriétés différentes sont émis sera important pour le moteur de recherche.

breakType

Type d’arrêt qui sépare le segment précédent du segment actuel. Les valeurs proviennent de l’énumération CHUNK_BREAKTYPE .

flags

Indique si ce segment contient une propriété de type texte ou de type valeur. Les valeurs d’indicateur sont extraites de l’énumération CHUNKSTATE . Si l’indicateur CHUNK_TEXT est défini, IFilter ::GetText doit être utilisé pour récupérer le contenu du segment sous la forme d’une série de mots. Si l’indicateur CHUNK_VALUE est défini, IFilter ::GetValue doit être utilisé pour récupérer la valeur et la traiter comme une seule valeur de propriété. Si le filtre détermine que le même contenu est traité à la fois comme du texte et comme une valeur, le segment doit être émis deux fois dans deux blocs différents, chacun avec un ensemble d’indicateurs.

locale

Langue et sous-langue associées à un bloc de texte. Les paramètres régionaux de segment sont utilisés par les indexeurs de document pour effectuer une rupture de texte appropriée. Si le segment n’est ni de type texte ni de type valeur avec le type de données VT_LPWSTR, VT_LPSTR ou VT_BSTR, ce champ est ignoré.

attribute

Propriété à appliquer au segment. Consultez FULLPROPSPEC. Si un filtre nécessite que le même texte ait plusieurs propriétés, il doit émettre le texte une fois pour chaque propriété dans des blocs distincts.

idChunkSource

ID de la source d’un segment. La valeur du membre idChunkSource dépend de la nature du segment :

  • Si le segment est une propriété de type texte, la valeur du membre idChunkSource doit être identique à la valeur du membre idChunk .
  • Si le segment est une propriété de type valeur interne dérivée du contenu textuel, la valeur du membre idChunkSource est l’ID de segment du bloc de type texte dont il est dérivé.
  • Si les attributs de filtre spécifient de renvoyer uniquement les propriétés de type valeur internes, il n’existe aucun segment de contenu à partir duquel dériver la propriété de type valeur interne actuelle. Dans ce cas, la valeur du membre idChunkSource doit être définie sur zéro, ce qui est un segment non valide.

cwcStartSource

Décalage à partir duquel le texte source d’un segment dérivé commence dans le segment source.

cwcLenSource

Longueur en caractères du texte source à partir duquel le segment actuel a été dérivé. Une valeur zéro signifie la correspondance caractère par caractère entre le texte source et le texte dérivé. Une valeur différente de zéro signifie qu’il n’existe aucune correspondance directe de ce type.

Remarques

Les trois derniers membres (idChunkSource, cwcStartSource et cwcLenSource) sont utilisés pour décrire la source d’un segment dérivé ; c’est-à-dire un qui peut être mappé à une section de texte. Par exemple, le titre d’un chapitre peut être à la fois une propriété de type texte et une propriété de type valeur interne ? un titre. La propriété de type valeur « heading » serait un segment dérivé. Si le texte du segment de type valeur actuel (à partir d’une propriété de type valeur interne) est dérivé d’un bloc de type texte, il doit être émis plusieurs fois.

Le segment suivant est un exemple de la façon dont cela peut se produire dans un livre.

Le petit détective s’écria : « C’est fini ! »

Confessions

La chambre était silencieuse pendant plusieurs minutes. Après y avoir réfléchi très fort, la jeune femme a demandé : « Mais comment avez-vous su ? »

Ce segment peut être divisé en segments de la manière suivante.

id Texte BreakType Indicateurs Paramètres régionaux Attribut
1 Le petit déte N/A CHUNK_TEXT ENGLISH_UK CONTENT
2 ctive s’est exclamé, CHUNK_NO_BREAK N/A N/A N/A
3 « C’est fini ! » CHUNK_EOW CHUNK_TEXT FRENCH_BELGIAN CONTENT
4 Confessions CHUNK_EOC CHUNK_TEXT ENGLISH_UK CHAPTER_NAMES
5 Confessions CHUNK_EOP CHUNK_TEXT ENGLISH_UK CONTENT
6 La chambre était silencieuse pendant plusieurs minutes. CHUNK_EOP CHUNK_TEXT ENGLISH_UK CONTENT
7 Après y avoir réfléchi très fort, la jeune femme a demandé : « Mais comment avez-vous su ? » CHUNK_EOS CHUNK_TEXT ENGLISH_UK CONTENT
 

Les informations fournies par idChunkSource, cwcStartSource et cwcLenSource sont utiles pour un moteur de recherche qui met en évidence les résultats. Si la requête est effectuée pour une propriété de type valeur interne, le moteur de recherche met en surbrillance le texte d’origine à partir duquel le texte de la propriété de type valeur interne a été dérivé. Par instance, dans un filtre de code C++, le navigateur, lors de la recherche de MyFunction dans la propriété de type valeur interne « définitions de fonction », met en surbrillance l’en-tête de fonction dans le fichier.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
En-tête filter.h

Voir aussi

CHUNKSTATE

CHUNK_BREAKTYPE

FULLPROPSPEC

Ifilter