Comprendre le processus d’indexation
Le processus d’indexation consiste à créer un document pour chaque entité indexée. Pendant l’indexation, un pipeline d’enrichissement crée de manière itérative les documents qui combinent les métadonnées de la source de données avec des champs enrichis extraits par des compétences cognitives. Vous pouvez considérer chaque document indexé comme une structure JSON, qui se compose initialement d’un document contenant les champs d’index que vous avez mappés aux champs extraits directement à partir des données sources, comme suit :
- document
- metadata_storage_name
- metadata_author
- content
Lorsque les documents de la source de données contiennent des images, vous pouvez configurer l’indexeur pour extraire les données de l’image et placer chaque image dans une collection normalized_images, comme suit :
- document
- metadata_storage_name
- metadata_author
- content
- normalized_images
- image0
- image1
Le fait de normaliser les données d’image de cette façon vous permet d’utiliser la collection d’images comme entrée pour les compétences qui extraient des informations à partir des données d’image.
Chaque compétence ajoute des champs au document. Par exemple, une compétence qui détecte la langue dans laquelle est rédigé un document peut stocker sa sortie dans un champ language, comme suit :
- document
- metadata_storage_name
- metadata_author
- content
- normalized_images
- image0
- image1
- language
Le document est structuré de manière hiérarchique et les compétences sont appliquées à un contexte spécifique au sein de la hiérarchie, ce qui vous permet d’exécuter la compétence pour chaque élément à un niveau particulier du document. Par exemple, vous pouvez exécuter une compétence de reconnaissance optique de caractères (OCR) pour chaque image de la collection d’images normalisées afin d’extraire tout le texte éventuel qu’elles contiennent :
- document
- metadata_storage_name
- metadata_author
- content
- normalized_images
- image0
- Text
- image1
- Text
- image0
- language
Les champs de sortie de chaque compétence peuvent être utilisés comme entrées pour d’autres compétences à une phase ultérieure du pipeline, qui à leur tour stockent leurs sorties dans la structure du document. Par exemple, nous pouvons utiliser une compétence de fusion pour combiner le contenu du texte d’origine avec le texte extrait de chaque image afin de créer un champ merged_content contenant tout le texte du document, y compris celui des images.
- document
- metadata_storage_name
- metadata_author
- content
- normalized_images
- image0
- Text
- image1
- Text
- image0
- language
- merged_content
Les champs inclus dans la structure du document final à la fin du pipeline sont mappés aux champs d’index par l’indexeur de l’une des deux manières suivantes :
- Les champs extraits directement à partir des données sources sont tous mappés aux champs d’index. Ces mappages peuvent être implicites (les champs sont automatiquement mappés aux champs portant le même nom dans l’index) ou explicites (un mappage est défini pour faire correspondre un champ source à un champ d’index, souvent pour renommer le champ à l’aide d’un nom plus utile ou pour appliquer une fonction à la valeur de données mappée).
- Les champs de sortie issus des compétences incluses dans l’ensemble de compétences sont explicitement mappés à partir de leur emplacement hiérarchique dans la sortie au champ cible de l’index.