Metadaten zu Object Storage-Dateien für die Suchfilterung hinzufügen
Sie können Metadaten zu Object Storage-Dateien hinzufügen, bevor Sie sie mit einem Vektorspeicher synchronisieren. Metadaten verbessern den Abruf, indem semantische und hybride Suchen Ergebnisse nach relevanten Attributen filtern.
Beispiel: Sie können Metadaten wie Veröffentlichungsjahr, Titel, Thema, Abteilung, Produktbereich oder Dokumenttyp hinzufügen. Nachdem die Dateien synchronisiert wurden, können diese Metadatenfelder verwendet werden, um die Suchergebnisse auf einen bestimmten Inhaltsbereich einzugrenzen.
Metadaten sind optional. Wenn jedoch Metadaten für die Suchfilterung verfügbar sein sollen, fügen Sie die Metadaten hinzu oder aktualisieren Sie sie, bevor Sie die Datensynchronisierung ausführen. Nach einer Synchronisierung hinzugefügte Metadaten sind nur dann in dieser Synchronisierung enthalten, wenn Sie die Datensynchronisierung erneut ausführen.
Dieses Thema gilt für Vektorspeicher, die unstrukturierte Daten aus Object Storage synchronisieren.
Fügen Sie Metadaten hinzu, oder aktualisieren Sie sie, bevor Sie die Datensynchronisierung ausführen. Metadaten, die nach einer Synchronisierung hinzugefügt wurden, sind nicht in dieser Synchronisierung enthalten.
Funktionsweise von Metadaten
Metadaten werden als Schlüssel/Wert-Paare definiert. Um Metadaten mit Object Storage-Dateien zu verwenden, definieren Sie zunächst die Metadatenfelder in einer Schemadatei. Anschließend verknüpfen Sie Dateien im Bucket mit Metadatenwerten.
Für alle Object Storage-Metadatenmethoden müssen Sie eine Metadatenschemadatei mit dem Namen _metadata_schema.json auf der Root-Ebene des Object Storage-Buckets erstellen. Das Schema definiert die Metadatenschlüssel, die der Service erwarten kann, und den Werttyp für jeden Schlüssel.
Wenn die Datei _metadata_schema.json nicht vorhanden ist, werden keine Metadaten für Dateien im Bucket berechnet.
Jedes Metadatenfeld hat einen Namen und einen Typ. Folgende Metadatentypen werden unterstützt:
integerstringlist_of_stringdouble
Workflowüberblick
Verwenden Sie den folgenden Workflow, um Metadaten vorzubereiten, bevor Sie Dateien mit einem Vektorspeicher synchronisieren:
- Erstellen Sie in einem Texteditor eine Metadatenschemadatei mit dem Namen
_metadata_schema.json. - Definieren Sie die Metadatenfelder und Werttypen im JSON-Format.
- Laden Sie
_metadata_schema.jsonauf die Stammebene des Objektspeicher-Buckets hoch, der die zu synchronisierenden Dateien enthält. - So verknüpfen Sie Metadatenwerte mit Dateien:
- Wenden Sie allgemeine Metadaten auf alle Dateien im Bucket an.
- Definieren Sie Metadaten für mehrere Dateien in einer JSON-Datei.
- Definieren Sie Metadaten in einer separaten JSON-Datei für jede Datendatei.
- Fügen Sie Metadaten mit Object Storage-Metadateneigenschaften hinzu.
- Laden Sie die Metadatendateien an den richtigen Speicherort im Objektspeicher-Bucket hoch.
- Datensynchronisierung für den Vektorspeicher ausführen.
Beispiel für Metadatenschema
Erstellen Sie eine Metadaten-Schemadatei mit dem Namen _metadata_schema.json, und speichern Sie sie auf der Root-Ebene des Object Storage-Buckets.
{
"metadataSchema": [
{
"name": "publication_year",
"type": "integer"
},
{
"name": "title",
"type": "string"
},
{
"name": "topic",
"type": "list_of_string"
},
{
"name": "rating",
"type": "double"
}
]
}
Die Metadatennamen, die Sie in Metadatendateien verwenden, müssen mit den im Schema definierten Namen übereinstimmen.
Metadatenmethoden für Object Storage-Dateien
In der folgenden Tabelle werden die unterstützten Methoden zum Hinzufügen von Metadaten zu Dateien in Object Storage beschrieben. Dazu gehört, wo die einzelnen Metadatendateien oder Header erstellt werden und wann die einzelnen Methoden verwendet werden.
| Methode | Dateiname und Verzeichnis | Anwendungsfall |
|---|---|---|
| Metadatenschema definieren | Erstellen Sie _metadata_schema.json auf der Stammebene des Object Storage-Buckets. |
Für alle Methoden der Object Storage-Metadatendatei erforderlich. Das Schema definiert die unterstützten Metadatenschlüssel und Werttypen. |
| Gemeinsame Metadaten auf alle Dateien in einem Bucket anwenden | Erstellen Sie _common.metadata.json auf der Stammebene des Object Storage-Buckets. |
Verwenden Sie diese Option, wenn dieselben Metadaten für alle Dateien im Bucket gelten. Mit dieser Methode wird das Duplizieren von Metadaten zwischen Dateien vermieden. |
| Metadaten für mehrere Dateien in einer JSON-Datei definieren | Erstellen Sie _all.metadata.json auf der Stammebene des Object Storage-Buckets. |
Verwenden Sie diese Option, wenn Sie viele Dateien haben und Metadaten für alle Dateien in einer JSON-Datei verwalten möchten, anstatt eine Metadatendatei pro Datei zu erstellen. |
| Metadaten für eine Datei definieren | Erstellen Sie <file-name>.metadata.json auf derselben Ebene wie die entsprechende Datendatei. Der Wert <file-name> muss mit dem Namen der Datendatei übereinstimmen. |
Verwenden Sie diese Option, wenn sich Metadaten je nach Datei unterscheiden und eine geringe Anzahl von Dateien vorhanden ist oder wenn Sie die Erstellung von Metadatendateien automatisieren. |
| Metadaten als Object Storage-Header hinzufügen | Fügen Sie Metadaten mit den Object Storage-Metadateneigenschaften jeder Datei hinzu. | Nur verwenden, wenn eine geringe Anzahl von Metadateneigenschaften vorhanden ist. JSON-Metadatendateien werden empfohlen, da sie einfacher zu aktualisieren und zu verwalten sind. |
Beispiel für Speicherort von Metadatendateien
Das folgende Beispiel zeigt, wo Metadatendateien in einem Objektspeicher-Bucket gespeichert werden.
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
Bei dateispezifischen Metadaten muss die Metadatendatei auf derselben Ebene gespeichert werden wie die entsprechende Datendatei.
Beispiel: Die Datendatei wird gespeichert als:
folder_1/file_1.pdf
Die Metadatendatei muss gespeichert werden als:
folder_1/file_1.pdf.metadata.json
Beispiele für Metadaten-JSON-Dateien
Gemeinsame Metadaten für alle Dateien
Erstellen Sie _common.metadata.json auf der Root-Ebene des Buckets, um dieselben Metadaten auf alle Dateien im Bucket anzuwenden.
Beispiel:
{
"metadataAttributes": {
"publication_year": 2020,
"topic": [
"cooking",
"health",
"gardening"
],
"rating": 3.3
}
}
Metadaten für mehrere Dateien
Erstellen Sie _all.metadata.json auf der Root-Ebene des Buckets, um Metadaten für mehrere Dateien in einer JSON-Datei zu definieren.
Beispiel:
{
"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
}
}
}
Metadaten für eine Datei
Erstellen Sie <file-name>.metadata.json auf derselben Ebene wie die entsprechende Datendatei.
Beispiel: Um Metadaten für file_1.pdf zu definieren, erstellen Sie eine Datei namens file_1.pdf.metadata.json.
Beispiel:
{
"metadataAttributes": {
"publication_year": 2020,
"title": "Healthy Cooking Guide",
"topic": [
"cooking",
"health"
],
"rating": 4.5
}
}
Metadatenlimits
Die folgenden Grenzwerte gelten für Metadaten, die für die Suchfilterung verwendet werden.
| Beschreibung | Limit |
|---|---|
Maximale Anzahl der Einträge in _all.metadata.json |
10.000 |
| Maximale Anzahl Metadatenfelder, die für jede Datei angegeben werden können | 20 |
Maximale Anzahl der Elemente in einem list_of_string-Typ |
10 |
Maximale Länge jedes Elements in einem list_of_string-Typ |
50 characters |
| Maximale Länge eines Metadatenschlüssels | 25 characters |
| Maximale Länge eines Metadatenwertes | 50 characters |
Metadaten mit Data Sync verwenden
Fügen Sie das Metadatenschema und die Metadatendateien hinzu, bevor Sie Daten mit dem Vektorspeicher synchronisieren.
Nachdem die Dateien synchronisiert wurden, stehen die Metadaten für die Suchfilterung zur Verfügung. Wenn Sie nach der Synchronisierung Metadaten hinzufügen oder ändern, führen Sie die Datensynchronisierung erneut aus, sodass die aktualisierten Metadaten im Vektorspeicher enthalten sind.
Informationen zum Synchronisieren von Dateien aus Object Storage finden Sie unter Daten mit einem Vektorspeicher synchronisieren.