Grundlegende Operatoren
Milvus bietet einen umfangreichen Satz von Basisoperatoren, die Ihnen helfen, Daten effizient zu filtern und abzufragen. Mit diesen Operatoren können Sie Ihre Suchbedingungen auf der Grundlage von skalaren Feldern, numerischen Berechnungen, logischen Bedingungen und mehr verfeinern. Das Verständnis für die Verwendung dieser Operatoren ist entscheidend für die Erstellung präziser Abfragen und die Maximierung der Effizienz Ihrer Suchen.
Vergleichsoperatoren
Vergleichsoperatoren werden verwendet, um Daten auf der Grundlage von Gleichheit, Ungleichheit oder Größe zu filtern. Sie sind auf numerische, Text- und Datumsfelder anwendbar.
Unterstützte Vergleichsoperatoren.
==
(Gleich)!=
(Nicht gleich)>
(Größer als)<
(Kleiner als)>=
(Größer als oder gleich)<=
(Kleiner als oder gleich)
Beispiel 1: Filtern mit Gleich bis (==
)
Angenommen, Sie haben ein Feld namens status
und möchten alle Entitäten finden, bei denen status
"aktiv" ist. Sie können den Gleichheitsoperator ==
verwenden.
filter = 'status == "active"'
Beispiel 2: Filtern mit Not Equal To (!=
)
Um Entitäten zu finden, bei denen status
nicht "inaktiv" ist.
filter = 'status != "inactive"'
Beispiel 3: Filtern mit Größer als (>
)
Wenn Sie alle Entitäten finden wollen, deren age
größer als 30 ist.
filter = 'age > 30'
Beispiel 4: Filtern mit "kleiner als" (<
)
Um Entitäten zu finden, bei denen price
kleiner als 100 ist.
filter = 'price < 100'
Beispiel 5: Filtern mit Größer als oder gleich (>=
)
Wenn Sie alle Entitäten finden wollen, bei denen rating
größer oder gleich 4 ist.
filter = 'rating >= 4'
Beispiel 6: Filtern mit Kleiner als oder gleich (<=
)
Um Entitäten zu finden, deren discount
kleiner oder gleich 10% ist.
filter = 'discount <= 10'
Bereichsoperatoren
Bereichsoperatoren helfen bei der Filterung von Daten auf der Grundlage bestimmter Gruppen oder Bereiche von Werten.
Unterstützte Bereichsoperatoren.
IN
: Wird verwendet, um Werte innerhalb eines bestimmten Satzes oder Bereichs zu finden.LIKE
: Wird verwendet, um ein Muster abzugleichen (meist für Textfelder).
Beispiel 1: Verwendung von IN
für die Suche nach mehreren Werten
Wenn Sie alle Entitäten finden möchten, bei denen color
entweder "rot", "grün" oder "blau" ist.
filter = 'color in ["red", "green", "blue"]'
Dies ist nützlich, wenn Sie die Zugehörigkeit zu einer Liste von Werten prüfen wollen.
Beispiel 2: Verwendung von LIKE
für Mustervergleiche
Der Operator LIKE
wird für den Mustervergleich in Zeichenkettenfeldern verwendet. Er kann Teilzeichenfolgen an verschiedenen Positionen im Text entsprechen: als Präfix, Infix oder Suffix. Der Operator LIKE
verwendet das Symbol %
als Platzhalter, der mit einer beliebigen Anzahl von Zeichen (einschließlich Null) übereinstimmen kann.
Präfix-Übereinstimmung (Beginnt mit)
Um eine Präfix-Übereinstimmung durchzuführen, bei der die Zeichenfolge mit einem bestimmten Muster beginnt, können Sie das Muster an den Anfang stellen und %
verwenden, um alle darauf folgenden Zeichen abzugleichen. Beispiel: Sie möchten alle Produkte finden, deren name
mit "Prod" beginnt.
filter = 'name LIKE "Prod%"'
Dies entspricht allen Produkten, deren Name mit "Prod" beginnt, z. B. "Produkt A", "Produkt B" usw.
Suffix-Übereinstimmung (Endet mit)
Für eine Suffix-Übereinstimmung, bei der die Zeichenfolge mit einem bestimmten Muster endet, setzen Sie das Symbol %
an den Anfang des Musters. Beispiel: Sie möchten alle Produkte finden, deren name
mit "XYZ" endet.
filter = 'name LIKE "%XYZ"'
Damit werden alle Produkte gefunden, deren Name auf "XYZ" endet, z. B. "ProduktXYZ", "MusterXYZ" usw.
Infix-Abgleich (Enthält)
Um eine Infix-Übereinstimmung durchzuführen, bei der das Muster an beliebiger Stelle in der Zeichenfolge erscheinen kann, können Sie das Symbol %
sowohl am Anfang als auch am Ende des Musters platzieren. Beispiel: Sie möchten alle Produkte finden, deren name
das Wort "Pro" enthält.
filter = 'name LIKE "%Pro%"'
Dies entspricht allen Produkten, deren Name die Teilzeichenkette "Pro" enthält, wie z. B. "Product", "ProLine" oder "SuperPro".
Arithmetische Operatoren
Mit arithmetischen Operatoren können Sie Bedingungen erstellen, die auf Berechnungen mit numerischen Feldern basieren.
Unterstützte arithmetische Operatoren.
+
(Addition)-
(Subtraktion)*
(Multiplikation)/
(Division)%
(Modulus)**
(Potenzierung)
Beispiel 1: Verwendung der Addition (+
)
Suche nach Entitäten, bei denen der Preis total
die Summe von base_price
und tax
ist.
filter = 'total == base_price + tax'
Beispiel 2: Verwendung der Subtraktion (-
)
Um Entitäten zu finden, bei denen quantity
größer als 50 und quantity_sold
kleiner als 30 ist.
filter = 'quantity - quantity_sold > 50'
Beispiel 3: Verwendung der Multiplikation (*
)
Suche nach Entitäten, bei denen price
größer als 100 und quantity
größer als 10 ist, multipliziert.
filter = 'price * quantity > 1000'
Beispiel 4: Verwendung der Division (/
)
Um Produkte zu finden, bei denen total_price
geteilt durch quantity
kleiner als 50 ist.
filter = 'total_price / quantity < 50'
Beispiel 5: Verwendung von Modulus (%
)
Um Einheiten zu finden, bei denen id
eine gerade Zahl ist (d.h. durch 2 teilbar).
filter = 'id % 2 == 0'
Beispiel 6: Verwendung der Potenzierung (**
)
Um Entitäten zu finden, bei denen price
hoch 2 größer als 1000 ist.
filter = 'price ** 2 > 1000'
Logische Operatoren
Logische Operatoren werden verwendet, um mehrere Bedingungen in einem komplexeren Filterausdruck zu kombinieren. Dazu gehören AND
, OR
und NOT
.
Unterstützte logische Operatoren.
AND
: Kombiniert mehrere Bedingungen, die alle wahr sein müssen.OR
: Kombiniert Bedingungen, von denen mindestens eine wahr sein muss.NOT
: Negiert eine Bedingung.
Beispiel 1: AND
zum Kombinieren von Bedingungen verwenden
Alle Produkte finden, bei denen price
größer als 100 und stock
größer als 50 ist.
filter = 'price > 100 AND stock > 50'
Beispiel 2: OR
zum Kombinieren von Bedingungen verwenden
Um alle Produkte zu finden, bei denen color
entweder "rot" oder "blau" ist.
filter = 'color == "red" OR color == "blue"'
Beispiel 3: Verwendung von NOT
zum Ausschließen einer Bedingung
Um alle Produkte zu finden, bei denen color
nicht "grün" ist.
filter = 'NOT color == "green"'
Tipps zur Verwendung grundlegender Operatoren mit JSON- und ARRAY-Feldern
Die Basisoperatoren in Milvus sind zwar vielseitig und können auf skalare Felder angewendet werden, aber sie können auch effektiv mit den Schlüsseln und Indizes in JSON- und ARRAY-Feldern verwendet werden.
Wenn Sie zum Beispiel ein Feld product
haben, das mehrere Schlüssel wie price
, model
und tags
enthält, verweisen Sie immer direkt auf den Schlüssel.
filter = 'product["price"] > 1000'
Um Datensätze zu finden, bei denen die erste Temperatur in einem Array von aufgezeichneten Temperaturen einen bestimmten Wert überschreitet, verwenden Sie.
filter = 'history_temperatures[0] > 30'
Schlussfolgerung
Milvus bietet eine Reihe von grundlegenden Operatoren, die Ihnen Flexibilität beim Filtern und Abfragen Ihrer Daten bieten. Durch die Kombination von Vergleichs-, Bereichs-, arithmetischen und logischen Operatoren können Sie leistungsstarke Filterausdrücke erstellen, um Ihre Suchergebnisse einzugrenzen und die benötigten Daten effizient abzurufen.