Ajout de métadonnées aux fichiers de stockage d'objets pour le filtrage de recherche

Vous pouvez ajouter des métadonnées aux fichiers de stockage d'objets avant de les synchroniser avec un magasin de vecteurs. Les métadonnées aident à améliorer l'extraction en permettant aux recherches sémantiques et hybrides de filtrer les résultats par attributs pertinents.

Par exemple, vous pouvez ajouter des métadonnées telles que l'année de publication, le titre, le sujet, le service, le domaine de produit ou le type de document. Une fois les fichiers synchronisés, ces champs de métadonnées peuvent être utilisés pour limiter les résultats de recherche à une portée de contenu spécifique.

Les métadonnées sont facultatives. Toutefois, si vous voulez que les métadonnées soient disponibles pour le filtrage de recherche, ajoutez ou mettez à jour les métadonnées avant d'effectuer la synchronisation des données. Les métadonnées ajoutées après une synchronisation ne sont pas incluses dans cette synchronisation, sauf si vous exécutez à nouveau la synchronisation des données.

Cette rubrique s'applique aux magasins vectoriels qui synchronisent des données non structurées à partir du service de stockage d'objets.

Note

Ajoutez ou mettez à jour les métadonnées avant d'effectuer la synchronisation des données. Les métadonnées ajoutées après une synchronisation ne sont pas incluses dans cette synchronisation.

Fonctionnement des métadonnées

Les métadonnées sont définies comme des paires clé-valeur. Pour utiliser des métadonnées avec des fichiers de stockage d'objets, vous devez d'abord définir les champs de métadonnées dans un fichier de schéma. Ensuite, vous associez les fichiers du seau aux valeurs de métadonnées.

Pour toutes les méthodes de métadonnées du service de stockage d'objets, vous devez créer un fichier de schéma de métadonnées nommé _metadata_schema.json au niveau racine du seau de stockage d'objets. Le schéma définit les clés de métadonnées auxquelles le service peut s'attendre et le type de valeur de chaque clé.

Si le fichier _metadata_schema.json n'existe pas, les métadonnées ne sont pas calculées pour les fichiers du seau.

Chaque champ de métadonnées a un nom et un type. Les types de métadonnées pris en charge sont les suivants :

  • integer
  • string
  • list_of_string
  • double

Aperçu du flux de travail

Utilisez le flux de travail suivant pour préparer les métadonnées avant de synchroniser les fichiers dans un magasin de vecteurs :

  1. Dans un éditeur de texte, créez un fichier de schéma de métadonnées nommé _metadata_schema.json.
  2. Définissez les champs de métadonnées et les types de valeur au format JSON.
  3. Chargez _metadata_schema.json au niveau racine du seau de stockage d'objets qui contient les fichiers à synchroniser.
  4. Sélectionnez le mode d'association des valeurs de métadonnées aux fichiers :
    • Appliquez les métadonnées communes à tous les fichiers du seau.
    • Définissez les métadonnées de plusieurs fichiers dans un fichier JSON.
    • Définissez les métadonnées dans un fichier JSON distinct pour chaque fichier de données.
    • Ajoutez des métadonnées à l'aide des propriétés de métadonnées du service de stockage d'objets.
  5. Chargez les fichiers de métadonnées à l'emplacement approprié dans le seau de stockage d'objets.
  6. Effectuez une synchronisation de données pour le magasin de vecteurs.

Exemple de schéma de métadonnées

Créez un fichier de schéma de métadonnées nommé _metadata_schema.json et enregistrez-le au niveau racine du seau de stockage d'objets.

{
  "metadataSchema": [
    {
      "name": "publication_year",
      "type": "integer"
    },
    {
      "name": "title",
      "type": "string"
    },
    {
      "name": "topic",
      "type": "list_of_string"
    },
    {
      "name": "rating",
      "type": "double"
    }
  ]
}

Les noms de métadonnées que vous utilisez dans les fichiers de métadonnées doivent correspondre aux noms définis dans le schéma.

Méthodes de métadonnées pour les fichiers de stockage d'objets

Le tableau suivant décrit les méthodes prises en charge pour ajouter des métadonnées aux fichiers du service de stockage d'objets, notamment l'endroit où créer chaque fichier ou en-tête de métadonnées et le moment où utiliser chaque méthode.

Méthode Nom et emplacement du fichier Cas d'emploi
Définir le schéma de métadonnées Créez _metadata_schema.json au niveau racine du seau de stockage d'objets. Obligatoire pour toutes les méthodes de fichier de métadonnées du service de stockage d'objets. Le schéma définit les clés de métadonnées et les types de valeur pris en charge.
Appliquer les métadonnées communes à tous les fichiers d'un seau Créez _common.metadata.json au niveau racine du seau de stockage d'objets. À utiliser lorsque les mêmes métadonnées s'appliquent à tous les fichiers du compartiment. Cette méthode évite la duplication des métadonnées entre les fichiers.
Définir les métadonnées pour plusieurs fichiers dans un fichier JSON Créez _all.metadata.json au niveau racine du seau de stockage d'objets. À utiliser lorsque vous avez de nombreux fichiers et que vous préférez gérer les métadonnées de tous les fichiers dans un fichier JSON au lieu de créer un fichier de métadonnées par fichier.
Définir les métadonnées pour un fichier Créez <file-name>.metadata.json au même niveau que le fichier de données correspondant. La valeur <file-name> doit correspondre au nom du fichier de données. À utiliser lorsque les métadonnées diffèrent par fichier et que vous avez un petit nombre de fichiers, ou lorsque vous automatisez la création du fichier de métadonnées.
Ajouter des métadonnées en tant qu'en-têtes de stockage d'objets Ajoutez des métadonnées à l'aide des propriétés de métadonnées du service de stockage d'objets de chaque fichier. À utiliser uniquement lorsque vous disposez d'un petit nombre de propriétés de métadonnées. Les fichiers de métadonnées JSON sont recommandés car ils sont plus faciles à mettre à jour et à gérer.

Exemple d'emplacement de fichier de métadonnées

L'exemple suivant montre où enregistrer les fichiers de métadonnées dans un seau de stockage d'objets.

bucket_root/
  _metadata_schema.json
  _common.metadata.json
  _all.metadata.json
  file_0.pdf
  file_0.pdf.metadata.json
  folder_1/
    file_1.pdf
    file_1.pdf.metadata.json
  folder_2/
    file_2.pdf
    file_2.pdf.metadata.json

Pour les métadonnées propres à un fichier, le fichier de métadonnées doit être enregistré au même niveau que le fichier de données correspondant.

Par exemple, si le fichier de données est enregistré sous :

folder_1/file_1.pdf

le fichier de métadonnées doit être enregistré sous :

folder_1/file_1.pdf.metadata.json

Exemples de fichier JSON de métadonnées

Métadonnées communes pour tous les fichiers

Créez _common.metadata.json au niveau racine du seau pour appliquer les mêmes métadonnées à tous les fichiers du seau.

Exemple :

{
  "metadataAttributes": {
    "publication_year": 2020,
    "topic": [
      "cooking",
      "health",
      "gardening"
    ],
    "rating": 3.3
  }
}

Métadonnées pour plusieurs fichiers

Créez _all.metadata.json au niveau racine du seau pour définir les métadonnées de plusieurs fichiers dans un fichier JSON.

Exemple :

{
  "folder_1/file_1.pdf": {
    "metadataAttributes": {
      "publication_year": 2020,
      "title": "Healthy Cooking Guide",
      "topic": [
        "cooking",
        "health"
      ],
      "rating": 4.5
    }
  },
  "folder_2/file_2.pdf": {
    "metadataAttributes": {
      "publication_year": 2022,
      "title": "Gardening Basics",
      "topic": [
        "gardening"
      ],
      "rating": 4.0
    }
  }
}

Métadonnées pour un fichier

Créez <file-name>.metadata.json au même niveau que le fichier de données correspondant.

Par exemple, pour définir les métadonnées pour file_1.pdf, créez un fichier nommé file_1.pdf.metadata.json.

Exemple :

{
  "metadataAttributes": {
    "publication_year": 2020,
    "title": "Healthy Cooking Guide",
    "topic": [
      "cooking",
      "health"
    ],
    "rating": 4.5
  }
}

Limites de métadonnées

Les limites suivantes s'appliquent aux métadonnées utilisées pour le filtrage de recherche.

Description Limite
Nombre maximal d'entrées dans _all.metadata.json 10 000
Nombre maximal de champs de métadonnées pouvant être spécifiés pour chaque fichier 20
Nombre maximum d'éléments dans un type list_of_string 10
Longueur maximale de chaque élément d'un type list_of_string 50 caractères
Longueur maximale d'une clé de métadonnées 25 caractères
Longueur maximale d'une valeur de métadonnées 50 caractères

Utiliser des métadonnées avec Data Sync

Ajoutez le schéma de métadonnées et les fichiers de métadonnées avant de synchroniser les données avec le magasin de vecteurs.

Une fois les fichiers synchronisés, les métadonnées sont disponibles pour le filtrage de recherche. Si vous ajoutez ou modifiez des métadonnées après la synchronisation, effectuez de nouveau la synchronisation des données afin que les métadonnées mises à jour soient incluses dans le magasin de vecteurs.

Pour synchroniser des fichiers à partir du stockage d'objets, voir Synchroniser les données avec un magasin de vecteurs.