Aggiunta di metadati ai file di storage degli oggetti per il filtro di ricerca

È possibile aggiungere metadati ai file di storage degli oggetti prima di sincronizzarli in una memoria di vettore. I metadati consentono di migliorare il recupero consentendo alle ricerche semantiche e ibride di filtrare i risultati in base agli attributi pertinenti.

Ad esempio, è possibile aggiungere metadati quali anno di pubblicazione, titolo, argomento, reparto, area prodotto o tipo di documento. Dopo la sincronizzazione dei file, questi campi di metadati possono essere utilizzati per limitare i risultati della ricerca a un ambito di contenuto specifico.

Metadati facoltativi. Tuttavia, se si desidera che i metadati siano disponibili per il filtro di ricerca, aggiungere o aggiornare i metadati prima di eseguire la sincronizzazione dei dati. I metadati aggiunti dopo una sincronizzazione non vengono inclusi in tale sincronizzazione a meno che non si esegua di nuovo la sincronizzazione dei dati.

Questo argomento si applica alle aree di memorizzazione vettoriali che sincronizzano i dati non strutturati dallo storage degli oggetti.

Nota

Aggiungere o aggiornare i metadati prima di eseguire la sincronizzazione dei dati. I metadati aggiunti dopo una sincronizzazione non sono inclusi in tale sincronizzazione.

Funzionamento dei metadati

I metadati sono definiti come coppie chiave-valore. Per utilizzare i metadati con i file di storage degli oggetti, è innanzitutto necessario definire i campi di metadati in un file di schema. Quindi, associ i file nel bucket ai valori dei metadati.

Per tutti i metodi di metadati dello storage degli oggetti, è necessario creare un file di schema dei metadati denominato _metadata_schema.json al livello radice del bucket dello storage degli oggetti. Lo schema definisce le chiavi di metadati che il servizio può prevedere e il tipo di valore per ogni chiave.

Se il file _metadata_schema.json non esiste, i metadati non vengono calcolati per i file nel bucket.

Ogni campo di metadati ha un nome e un tipo. Di seguito sono riportati i tipi di metadati supportati.

  • integer
  • string
  • list_of_string
  • double

Panoramica del workflow

Utilizzare il workflow seguente per preparare i metadati prima di sincronizzare i file in una memoria di vettore:

  1. In un editor di testo, creare un file di schema dei metadati denominato _metadata_schema.json.
  2. Definire i campi di metadati e i tipi di valore in formato JSON.
  3. Caricare _metadata_schema.json nel livello radice del bucket di storage degli oggetti che contiene i file da sincronizzare.
  4. Selezionare come associare i valori dei metadati ai file:
    • Applica metadati comuni a tutti i file nel bucket.
    • Definire i metadati per diversi file in un unico file JSON.
    • Definire i metadati in un file JSON separato per ogni file di dati.
    • Aggiungere i metadati utilizzando le proprietà dei metadati dello storage degli oggetti.
  5. Caricare i file di metadati nella posizione corretta nel bucket di storage degli oggetti.
  6. Eseguire la sincronizzazione dei dati per la memoria di vettore.

Esempio di schema metadati

Creare un file di schema dei metadati denominato _metadata_schema.json e salvarlo al livello radice del bucket di storage degli oggetti.

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

I nomi dei metadati utilizzati nei file di metadati devono corrispondere ai nomi definiti nello schema.

Metodi di metadati per i file di storage degli oggetti

Nella tabella riportata di seguito vengono descritti i metodi supportati per l'aggiunta di metadati ai file nello storage degli oggetti, inclusa la posizione in cui creare ciascun file di metadati o intestazione e quando utilizzare ciascun metodo.

Metodo Nome e posizione del file Quando usarla
Definire lo schema dei metadati Creare _metadata_schema.json al livello radice del bucket di storage degli oggetti. Obbligatorio per tutti i metodi dei file di metadati dello storage degli oggetti. Lo schema definisce le chiavi di metadati e i tipi di valore supportati.
Applica metadati comuni a tutti i file in un bucket Creare _common.metadata.json al livello radice del bucket di storage degli oggetti. Utilizzare quando gli stessi metadati si applicano a tutti i file nel bucket. Questo metodo evita la duplicazione dei metadati tra i file.
Definire i metadati per diversi file in un unico file JSON Creare _all.metadata.json al livello radice del bucket di storage degli oggetti. Utilizzare quando si dispone di molti file e si preferisce gestire i metadati per tutti i file in un unico file JSON invece di creare un file di metadati per file.
Definire i metadati per un file Creare <file-name>.metadata.json allo stesso livello del file di dati corrispondente. Il valore <file-name> deve corrispondere al nome del file di dati. Utilizzare quando i metadati differiscono per file e si dispone di un numero limitato di file o quando si automatizza la creazione di file di metadati.
Aggiungi metadati come intestazioni di storage degli oggetti Aggiungere i metadati utilizzando le proprietà dei metadati dello storage degli oggetti di ogni file. Utilizzare solo se si dispone di un numero limitato di proprietà di metadati. I file di metadati JSON sono consigliati perché sono più facili da aggiornare e gestire.

Esempio di posizione file di metadati

L'esempio riportato di seguito mostra dove salvare i file di metadati in un bucket di storage degli oggetti.

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

Per i metadati specifici del file, il file di metadati deve essere salvato allo stesso livello del file di dati corrispondente.

Ad esempio, se il file di dati viene salvato come segue:

folder_1/file_1.pdf

il file di metadati deve essere salvato come indicato di seguito.

folder_1/file_1.pdf.metadata.json

Esempi di file JSON dei metadati

Metadati comuni per tutti i file

Creare _common.metadata.json al livello radice del bucket per applicare gli stessi metadati a tutti i file nel bucket.

Esempio:

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

Metadati per più file

Creare _all.metadata.json al livello radice del bucket per definire i metadati per diversi file in un unico file JSON.

Esempio:

{
  "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
    }
  }
}

Metadati per un file

Creare <file-name>.metadata.json allo stesso livello del file di dati corrispondente.

Ad esempio, per definire i metadati per file_1.pdf, creare un file denominato file_1.pdf.metadata.json.

Esempio:

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

Limiti metadati

I limiti riportati di seguito si applicano ai metadati utilizzati per l'applicazione di filtri di ricerca.

Descrizione Limitato
Numero massimo di elementi in _all.metadata.json 10.000
Numero massimo di campi di metadati che è possibile specificare per ogni file 20
Numero massimo di articoli in un tipo list_of_string 10
Lunghezza massima di ogni elemento in un tipo list_of_string 50 caratteri
Lunghezza massima di una chiave di metadati 25 caratteri
Lunghezza massima di un valore di metadati 50 caratteri

Utilizzo dei metadati con Data Sync

Aggiungere lo schema dei metadati e i file di metadati prima di sincronizzare i dati nella memoria di vettore.

Dopo la sincronizzazione dei file, i metadati sono disponibili per l'applicazione di filtri di ricerca. Se si aggiungono o si modificano i metadati dopo la sincronizzazione, eseguire di nuovo la sincronizzazione dei dati in modo che i metadati aggiornati vengano inclusi nella memoria di vettore.

Per sincronizzare i file dallo storage degli oggetti, vedere Sincronizzazione dei dati in un'area di memorizzazione vettore.