Filterung von Metadaten - Amazon Simple Storage Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Filterung von Metadaten

Anmerkung

Amazon S3 Vectors befindet sich in der Vorschauversion für Amazon Simple Storage Service und kann sich ändern.

Mithilfe der Metadatenfilterung können Sie Abfrageergebnisse auf der Grundlage bestimmter Attribute filtern, die Ihren Vektoren zugeordnet sind. Sie können Metadatenfilter mit Abfrageoperationen verwenden, um Vektoren zu finden, die sowohl Ähnlichkeitskriterien als auch bestimmten Metadatenbedingungen entsprechen.

S3 Vectors unterstützt zwei Arten von Metadaten: filterbare Metadaten und nicht filterbare Metadaten. Der Hauptunterschied besteht darin, dass filterbare Metadaten in Abfragefiltern verwendet werden können, jedoch strengere Größenbeschränkungen haben, während nicht filterbare Metadaten nicht in Filtern verwendet werden können, sondern größere Datenmengen innerhalb ihrer Größenbeschränkungen speichern können. Weitere Informationen zu Metadatenbeschränkungen, einschließlich Größenbeschränkungen pro Vektor und maximaler Anzahl von Metadatenschlüsseln pro Vektor, finden Sie unter. Begrenzungen und Einschränkungen

Filterbare Metadaten

Mit filterbaren Metadaten können Sie Abfrageergebnisse auf der Grundlage bestimmter Metadatenwerte filtern. Standardmäßig sind alle Metadatenfelder in einer Ähnlichkeitsabfrage filterbar, sofern sie bei der Erstellung des Vektorindexes nicht ausdrücklich als nicht filterbar angegeben wurden. S3 Vectors unterstützt Metadaten vom Typ „Zeichenfolge“, „Zahl“, „Boolean“ und „Liste“ mit einer Größenbeschränkung pro Vektor. Der Metadatentyp ist ideal für Attribute, nach denen Sie filtern möchten, wie Kategorien, Zeitstempel oder Statuswerte.

Wenn die Größe der Metadaten die unterstützten Grenzwerte überschreitet, gibt der PutVectorsAPI-Vorgang einen 400 Bad Request Fehler zurück. Weitere Informationen zur Größenbeschränkung für filterbare Metadaten pro Vektor finden Sie unterBegrenzungen und Einschränkungen.

Die folgenden Operationen können mit filterbaren Metadaten verwendet werden.

Operator Gültige Eingabetypen Beschreibung
$eq Zeichenfolge, Zahl, Boolean

Exakter Übereinstimmungsvergleich für einzelne Werte.

Gibt beim Vergleich mit einem Array-Metadatenwert true zurück, wenn der Eingabewert mit einem beliebigen Element im Array übereinstimmt. {"category": {"$eq": "documentary"}}Würde beispielsweise einen Vektor mit Metadaten abgleichen"category": ["documentary", "romance"].

$ne Zeichenfolge, Zahl, Boolean Nicht gleichwertiger Vergleich
$gt Anzahl Größer als der Vergleich
$gte Anzahl Größer als oder gleich Vergleich
$lt Anzahl Weniger als der Vergleich
$lte Anzahl Weniger als oder gleich im Vergleich
$in Nicht leeres Array von Primitiven Stimmt mit einem beliebigen Wert im Array überein
$nin Nicht leeres Array von Primitiven Entspricht keinem der Werte im Array
$exists Boolesch Prüfen Sie, ob das Feld existiert
$and Nicht leeres Filter-Array Logisches UND mehrerer Bedingungen
$or Nicht leeres Filter-Array Logisches ODER mehrerer Bedingungen

Beispiele für gültige filterbare Metadaten

Einfache Gleichheit
{"genre": "documentary"}

Dieser Filter entspricht Vektoren, bei denen der Genre-Metadatenschlüssel „Dokumentarfilm“ entspricht. Wenn Sie keinen Operator angeben, verwendet S3 Vectors automatisch den $eq-Operator.

Explizite Gleichheit
// Example: Exact match {"genre": {"$eq": "documentary"}}
// Example: Not equal to {"genre": {"$ne": "drama"}}
Numerischer Vergleich
{"year": {"$gt": 2019}}
{"year": {"$gte": 2020}}
{"year": {"$lt": 2020}}
{"year": {"$lte": 2020}}
Array-Operationen
{"genre": {"$in": ["comedy", "documentary"]}}
{"genre": {"$nin": ["comedy", "documentary"]}}
Existenzprüfung
{"genre": {"$exists": true}}

Der $exists Filter sucht nach Vektoren, die über einen „Genre“ -Metadatenschlüssel verfügen, unabhängig davon, welcher Wert für diesen Metadatenschlüssel gespeichert ist.

Logische Operationen
{"$and": [{"genre": {"$eq": "drama"}}, {"year": {"$gte": 2020}}]}
{"$or": [{"genre": {"$eq": "drama"}}, {"year": {"$gte": 2020}}]}
Preisspanne (mehrere Bedingungen im selben Feld)
{"price": {"$gte": 10, "$lte": 50}}

Weitere Informationen zum Abfragen von Vektoren mit Metadatenfilterung finden Sie unterFilterung von Metadaten.

Nicht filterbare Metadaten

Nicht filterbare Metadaten können nicht in Abfragefiltern verwendet werden, können jedoch größere Mengen an Kontextdaten speichern als filterbare Metadaten. Es eignet sich ideal zum Speichern großer Textblöcke, detaillierter Beschreibungen oder anderer kontextbezogener Informationen, die nicht durchsuchbar sein müssen, aber zusammen mit Abfrageergebnissen zurückgegeben werden können. Sie können beispielsweise vollständigen Dokumenttext, Bildbeschreibungen oder detaillierte Produktspezifikationen als nicht filterbare Metadaten speichern.

Nicht filterbare Metadatenschlüssel müssen bei der Erstellung des Vektorindexes explizit konfiguriert werden. Sobald ein Metadatenschlüssel bei der Indexerstellung als nicht filterbar gekennzeichnet wurde, kann er später nicht mehr in filterbar geändert werden. Sie können mehrere Metadatenschlüssel pro Vektorindex als nicht filterbar konfigurieren, wobei jeder Metadatenschlüsselname auf 63 Zeichen begrenzt ist. Weitere Hinweise zur maximalen Anzahl nicht filterbarer Metadatenschlüssel, die pro Vektorindex zulässig ist, finden Sie unter. Begrenzungen und Einschränkungen

Sie können zwar nicht nach nicht filterbaren Metadaten filtern, aber Sie können sie zusammen mit den Abfrageergebnissen mithilfe des Parameters abrufen. return-metadata In einigen Anwendungsfällen können Sie nicht filterbare Metadaten wie folgt verwenden.

  • Verwenden Sie es, um Kontext für Ihre Anwendung bereitzustellen, ohne separate Datenquellen analysieren zu müssen.

  • Speichern Sie größere Textblöcke, die die Größenbeschränkungen für filterbare Metadaten überschreiten würden.

  • Nehmen Sie es mithilfe der API-Operation in Vektorexporte auf ListVectors.

Weitere Informationen zur Konfiguration nicht filterbarer Metadaten finden Sie unter. Einen Vektorindex in einem Vektor-Bucket erstellen