ARRAY-Operatoren
Milvus bietet leistungsfähige Operatoren zur Abfrage von Array-Feldern, die es Ihnen ermöglichen, Entitäten auf der Grundlage des Inhalts von Arrays zu filtern und abzurufen.
Alle Elemente innerhalb eines Arrays müssen vom gleichen Typ sein, und verschachtelte Strukturen innerhalb von Arrays werden wie einfache Zeichenketten behandelt. Daher ist es ratsam, bei der Arbeit mit ARRAY-Feldern übermäßig tiefe Verschachtelungen zu vermeiden und sicherzustellen, dass Ihre Datenstrukturen für eine optimale Leistung so flach wie möglich sind.
Verfügbare ARRAY-Operatoren
Die ARRAY-Operatoren ermöglichen eine feinkörnige Abfrage von Array-Feldern in Milvus. Diese Operatoren sind:
ARRAY_CONTAINS(identifier, expr): prüft, ob ein bestimmtes Element in einem Array-Feld vorhanden ist.ARRAY_CONTAINS_ALL(identifier, expr)ARRAY-Operator: stellt sicher, dass alle Elemente der angegebenen Liste in dem Array-Feld vorhanden sind.ARRAY_CONTAINS_ANY(identifier, expr)Array: prüft, ob eines der Elemente aus der angegebenen Liste im Array-Feld vorhanden ist.ARRAY_LENGTH(identifier)ARRAY_CONTAINS: Gibt die Anzahl der Elemente in einem Array-Feld zurück und kann mit Vergleichsoperatoren zur Filterung kombiniert werden.
ARRAY_CONTAINS
Der Operator ARRAY_CONTAINS prüft, ob ein bestimmtes Element in einem Array-Feld vorhanden ist. Er ist nützlich, wenn Sie Entitäten finden wollen, in denen ein bestimmtes Element in einem Array vorhanden ist.
Beispiel
Angenommen, Sie haben ein Array-Feld history_temperatures, das die aufgezeichneten niedrigsten Temperaturen für verschiedene Jahre enthält. Um alle Entitäten zu finden, in denen das Array den Wert 23 enthält, können Sie den folgenden Filterausdruck verwenden:
filter = 'ARRAY_CONTAINS(history_temperatures, 23)'
Dieser gibt alle Entitäten zurück, bei denen das Array history_temperatures den Wert 23 enthält.
ARRAY_CONTAINS_ALL
Der ARRAY_CONTAINS_ALL Operator stellt sicher, dass alle Elemente der angegebenen Liste im Array-Feld vorhanden sind. Dieser Operator ist nützlich, wenn Sie Entitäten abgleichen möchten, die mehrere Werte im Array enthalten.
Beispiel
Wenn Sie alle Entitäten finden möchten, bei denen das Array history_temperatures sowohl 23 als auch 24 enthält, können Sie diesen Operator verwenden:
filter = 'ARRAY_CONTAINS_ALL(history_temperatures, [23, 24])'
Dies gibt alle Entitäten zurück, bei denen das Array history_temperatures beide der angegebenen Werte enthält.
ARRAY_CONTAINS_ANY
Der ARRAY_CONTAINS_ANY Operator prüft, ob eines der Elemente aus der angegebenen Liste im Array-Feld vorhanden ist. Dies ist nützlich, wenn Sie Entitäten abgleichen möchten, die mindestens einen der angegebenen Werte im Array enthalten.
Beispiel
Um alle Entitäten zu finden, bei denen das Array history_temperatures entweder 23 oder 24 enthält, können Sie verwenden:
filter = 'ARRAY_CONTAINS_ANY(history_temperatures, [23, 24])'
Dies wird alle Entitäten zurückgeben, bei denen das Array history_temperatures mindestens einen der Werte 23 oder 24 enthält.
ARRAY_LENGTH
Die Funktion ARRAY_LENGTH gibt die Länge (Anzahl der Elemente) eines Array-Feldes zurück. Sie akzeptiert genau einen Parameter: den Bezeichner des Array-Feldes.
Beispiel
Um alle Entitäten zu finden, bei denen das Array history_temperatures weniger als 10 Elemente hat:
filter = 'ARRAY_LENGTH(history_temperatures) < 10'
Dies gibt alle Entitäten zurück, bei denen das Array history_temperatures weniger als 10 Elemente hat.