Metadatenfilterung - Amazon Simple Storage Service

Metadatenfilterung

Anmerkung

Amazon S3 Vectors befindet sich in der Vorabversion für Amazon Simple Storage Service und unterliegt noch Änderungen.

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

S3 Vectors führt die Vektorsuche und die Filterauswertung gleichzeitig durch. S3 Vectors durchsucht Kandidatenvektoren im Index, um die K ähnlichsten Vektoren zu finden, und überprüft gleichzeitig, ob jeder Kandidatenvektor Ihren Metadatenfilterbedingungen entspricht. Wenn Sie beispielsweise nach ähnlichen Filmeinbettungen suchen und nach genre='mystery' filtern, gibt S3 Vectors nur ähnliche Filmeinbettungen zurück, bei denen die Genre-Metadaten mit „Geheimnis“ übereinstimmen. Im Gegensatz zur Anwendung des Metadatenfilters nach der Vektorsuche ist es bei diesem Filteransatz wahrscheinlicher, dass passende Ergebnisse gefunden werden. Hinweis: Abfragen mit Filtern geben möglicherweise weniger Ergebnisse als die besten K zurück, wenn der Vektorindex nur sehr wenige übereinstimmende Ergebnisse enthält.

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 PutVectors-API-Vorgang einen 400 Bad Request Fehler zurück. Weitere Hinweise zur Größenbeschränkung für filterbare Metadaten pro Vektor finden Sie unter. Begrenzungen und Einschränkungen

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

Operator Gültige Eingabetypen Beschreibung
$eq Zeichenfolge, Zahl, boolescher Wert

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, boolescher Wert Kein gleichwertiger Vergleich
$gt Anzahl Größer als ein Vergleich
$gte Anzahl Größer als oder gleich im Vergleich
$lt Anzahl Weniger als ein Vergleich
$lte Anzahl Kleiner als oder gleich im Vergleich
$in Nicht-empty array von Primitiven Entspricht einem beliebigen Wert im Array
$nin Nicht-empty array von Primitiven Entspricht keinem der Werte im Array
$exists Boolesch Prüfen Sie, ob das Feld vorhanden ist
$and Nicht-empty Array von Filtern Logisches UND mehrerer Bedingungen
$or Nicht-empty Array von Filtern 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"}}
Numerische Vergleiche
{"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 Metadatenfiltern finden Sie unterMetadatenfilterung.

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 return-metadata abrufen. 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 ListVectors-API-Operation in Vektorexporte auf.

Weitere Informationen zum Konfigurieren nicht filterbarer Metadaten finden Sie unter Erstellen eines Vektorindex in einem Vektor-Bucket.