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.
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.
integerstringlist_of_stringdouble
Panoramica del workflow
Utilizzare il workflow seguente per preparare i metadati prima di sincronizzare i file in una memoria di vettore:
- In un editor di testo, creare un file di schema dei metadati denominato
_metadata_schema.json. - Definire i campi di metadati e i tipi di valore in formato JSON.
- Caricare
_metadata_schema.jsonnel livello radice del bucket di storage degli oggetti che contiene i file da sincronizzare. - 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.
- Caricare i file di metadati nella posizione corretta nel bucket di storage degli oggetti.
- 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.