ARRAY-Operatoren
Milvus bietet leistungsstarke 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)
: prüft, ob eines der Elemente aus der angegebenen Liste in dem Array-Feld vorhanden ist.ARRAY_LENGTH(identifier, expr)
ARRAY_CONTAINS: Erlaubt das Filtern von Entitäten basierend auf der Anzahl der Elemente in einem Array-Feld.
ARRAY_CONTAINS
Der ARRAY_CONTAINS
Operator prüft, ob ein bestimmtes Element in einem Array-Feld vorhanden ist. Er ist nützlich, wenn Sie Entitäten finden wollen, bei denen ein bestimmtes Element in dem 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 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
Der ARRAY_LENGTH
Operator ermöglicht es Ihnen, Entitäten auf der Grundlage der Anzahl der Elemente in einem Array-Feld zu filtern. Dies ist nützlich, wenn Sie Entitäten mit Arrays einer bestimmten Länge finden müssen.
Beispiel
Wenn Sie alle Entitäten finden wollen, bei denen das Array history_temperatures
weniger als 10 Elemente hat, können Sie verwenden.
filter = 'ARRAY_LENGTH(history_temperatures) < 10'
Dies wird alle Entitäten zurückgeben, bei denen das Array history_temperatures
weniger als 10 Elemente hat.