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): 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.