Operator Dasar
Milvus menyediakan serangkaian operator dasar yang kaya untuk membantu Anda memfilter dan menanyakan data secara efisien. Operator-operator ini memungkinkan Anda untuk mempersempit kondisi pencarian Anda berdasarkan bidang skalar, perhitungan numerik, kondisi logika, dan banyak lagi. Memahami cara menggunakan operator-operator ini sangat penting untuk membuat kueri yang tepat dan memaksimalkan efisiensi pencarian Anda.
Operator perbandingan
Operator perbandingan digunakan untuk memfilter data berdasarkan persamaan, ketidaksamaan, atau ukuran. Operator ini dapat digunakan untuk bidang numerik, teks, dan tanggal.
Operator Perbandingan yang Didukung.
==
(Sama dengan)!=
(Tidak sama dengan)>
(Lebih besar dari)<
(Kurang dari)>=
(Lebih besar dari atau sama dengan)<=
(Kurang dari atau sama dengan)
Contoh 1: Memfilter dengan Lebih besar dari atau sama dengan (>=
)
Jika Anda ingin menemukan semua entitas dengan rating
lebih besar dari atau sama dengan 4.
filter = 'rating >= 4'
Contoh 2: Memfilter dengan Kurang Dari atau Sama Dengan (<=
)
Untuk menemukan entitas dengan discount
kurang dari atau sama dengan 10%.
filter = 'discount <= 10'
Operator rentang
Operator rentang membantu memfilter data berdasarkan set atau rentang nilai tertentu.
Operator Rentang yang Didukung.
IN
: Digunakan untuk mencocokkan nilai dalam set atau rentang tertentu.LIKE
: Digunakan untuk mencocokkan pola (sebagian besar untuk bidang teks).
Contoh 1: Menggunakan IN
untuk Mencocokkan Beberapa Nilai
Jika Anda ingin menemukan semua entitas di mana color
adalah "merah", "hijau", atau "biru".
filter = 'color in ["red", "green", "blue"]'
Ini berguna ketika Anda ingin memeriksa keanggotaan dalam daftar nilai.
Contoh 2: Menggunakan LIKE
untuk Pencocokan Pola
Operator LIKE
digunakan untuk pencocokan pola dalam bidang string. Operator ini dapat mencocokkan substring di berbagai posisi dalam teks: sebagai awalan, akhiran, atau akhiran. Operator LIKE
menggunakan simbol %
sebagai wildcard, yang dapat mencocokkan sejumlah karakter (termasuk nol).
Pencocokan Awalan (Dimulai dengan)
Untuk melakukan pencocokan awalan, di mana string dimulai dengan pola tertentu, Anda dapat menempatkan pola di awal dan menggunakan %
untuk mencocokkan karakter apa pun yang mengikutinya. Misalnya, untuk menemukan semua produk yang name
-nya dimulai dengan "Prod".
filter = 'name LIKE "Prod%"'
Ini akan mencocokkan semua produk yang namanya dimulai dengan "Prod", seperti "Produk A", "Produk B", dll.
Pencocokan Akhiran (Berakhiran dengan)
Untuk pencocokan akhiran, di mana string diakhiri dengan pola tertentu, letakkan simbol %
di awal pola. Misalnya, untuk menemukan semua produk yang name
-nya diakhiri dengan "XYZ".
filter = 'name LIKE "%XYZ"'
Ini akan mencocokkan semua produk yang namanya diakhiri dengan "XYZ", seperti "ProductXYZ", "SampleXYZ", dll.
Pencocokan Infiks (Berisi)
Untuk melakukan pencocokan infix, di mana pola dapat muncul di mana saja dalam string, Anda dapat menempatkan simbol %
di awal dan akhir pola. Misalnya, untuk menemukan semua produk yang name
-nya mengandung kata "Pro".
filter = 'name LIKE "%Pro%"'
Ini akan mencocokkan semua produk yang namanya mengandung substring "Pro", seperti "Produk", "ProLine", atau "SuperPro".
Operator Aritmatika
Operator aritmatika memungkinkan Anda untuk membuat kondisi berdasarkan perhitungan yang melibatkan bidang numerik.
Operator Aritmatika yang Didukung.
+
(Penambahan)-
(Pengurangan)*
(Perkalian)/
(Pembagian)%
(Modulus)**
(Eksponensial)
Contoh 1: Menggunakan Penjumlahan (+
)
Untuk menemukan entitas di mana harga total
adalah jumlah dari base_price
dan tax
.
filter = 'total == base_price + tax'
Contoh 2: Menggunakan Pengurangan (-
)
Untuk menemukan entitas di mana quantity
lebih besar dari 50 dan quantity_sold
kurang dari 30.
filter = 'quantity - quantity_sold > 50'
Contoh 3: Menggunakan Perkalian (*
)
Untuk menemukan entitas di mana price
lebih besar dari 100 dan quantity
lebih besar dari 10, dikalikan.
filter = 'price * quantity > 1000'
Contoh 4: Menggunakan Pembagian (/
)
Untuk mencari hasil bagi di mana total_price
dibagi dengan quantity
kurang dari 50.
filter = 'total_price / quantity < 50'
Contoh 5: Menggunakan Modulus (%
)
Untuk menemukan entitas di mana id
adalah bilangan genap (yaitu, habis dibagi 2).
filter = 'id % 2 == 0'
Contoh 6: Menggunakan Eksponensial (**
)
Untuk menemukan entitas di mana price
yang dipangkatkan dengan pangkat 2 lebih besar dari 1000.
filter = 'price ** 2 > 1000'
Operator Logika
Operator logika digunakan untuk menggabungkan beberapa kondisi ke dalam ekspresi filter yang lebih kompleks. Operator ini termasuk AND
, OR
, dan NOT
.
Operator Logika yang didukung.
AND
: Menggabungkan beberapa kondisi yang semuanya harus benar.OR
: Menggabungkan kondisi di mana setidaknya satu kondisi harus benar.NOT
: Meniadakan sebuah kondisi.
Contoh 1: Menggunakan AND
untuk Menggabungkan Kondisi
Untuk menemukan semua produk di mana price
lebih besar dari 100 dan stock
lebih besar dari 50.
filter = 'price > 100 AND stock > 50'
Contoh 2: Menggunakan OR
untuk Menggabungkan Kondisi
Untuk menemukan semua produk di mana color
adalah "merah" atau "biru".
filter = 'color == "red" OR color == "blue"'
Contoh 3: Menggunakan NOT
untuk Mengecualikan Kondisi
Untuk menemukan semua produk di mana color
tidak berwarna "hijau".
filter = 'NOT color == "green"'
Tips Menggunakan Operator Dasar dengan Bidang JSON dan ARRAY
Meskipun operator dasar di Milvus bersifat serbaguna dan dapat diterapkan pada bidang skalar, operator ini juga dapat digunakan secara efektif dengan kunci dan indeks di bidang JSON dan ARRAY.
Sebagai contoh, jika Anda memiliki bidang product
yang berisi beberapa kunci seperti price
, model
, dan tags
, selalu rujuk kunci secara langsung.
filter = 'product["price"] > 1000'
Untuk menemukan catatan di mana suhu pertama dalam larik suhu yang direkam melebihi nilai tertentu, gunakan.
filter = 'history_temperatures[0] > 30'
Kesimpulan
Milvus menawarkan berbagai operator dasar yang memberikan fleksibilitas dalam memfilter dan menanyakan data Anda. Dengan menggabungkan operator perbandingan, rentang, aritmatika, dan logika, Anda dapat membuat ekspresi filter yang kuat untuk mempersempit hasil pencarian dan mengambil data yang Anda butuhkan secara efisien.