Operator ARRAY
Milvus menyediakan operator yang kuat untuk melakukan kueri terhadap bidang larik, yang memungkinkan Anda untuk memfilter dan mengambil entitas berdasarkan isi larik.
Semua elemen dalam larik harus memiliki tipe yang sama, dan struktur bersarang dalam larik diperlakukan sebagai string biasa. Oleh karena itu, saat bekerja dengan bidang ARRAY, disarankan untuk menghindari penumpukan yang terlalu dalam dan memastikan bahwa struktur data Anda serata mungkin untuk kinerja yang optimal.
Operator ARRAY yang Tersedia
Operator ARRAY memungkinkan untuk melakukan kueri bidang array yang halus di Milvus. Operator-operator ini adalah.
ARRAY_CONTAINS(identifier, expr)
: memeriksa apakah elemen tertentu ada di dalam sebuah field array.ARRAY_CONTAINS_ALL(identifier, expr)
: memastikan bahwa semua elemen dari daftar yang ditentukan ada dalam bidang array.ARRAY_CONTAINS_ANY(identifier, expr)
: memeriksa apakah salah satu elemen dari daftar yang ditentukan ada dalam bidang array.ARRAY_LENGTH(identifier, expr)
: memungkinkan Anda untuk memfilter entitas berdasarkan jumlah elemen dalam bidang larik.
ARRAY_CONTAINS
Operator ARRAY_CONTAINS
memeriksa apakah elemen tertentu ada dalam bidang larik. Operator ini berguna saat Anda ingin menemukan entitas di mana elemen tertentu ada dalam larik.
Contoh
Misalkan Anda memiliki bidang larik history_temperatures
, yang berisi suhu terendah yang tercatat untuk tahun yang berbeda. Untuk menemukan semua entitas di mana larik berisi nilai 23
, Anda dapat menggunakan ekspresi filter berikut.
filter = 'ARRAY_CONTAINS(history_temperatures, 23)'
Ini akan mengembalikan semua entitas di mana larik history_temperatures
berisi nilai 23
.
LARIK_MENGANDUNG_SEMUA
Operator ARRAY_CONTAINS_ALL
memastikan bahwa semua elemen dari daftar yang ditentukan ada dalam bidang larik. Operator ini berguna ketika Anda ingin mencocokkan entitas yang berisi beberapa nilai dalam larik.
Contoh
Jika Anda ingin menemukan semua entitas di mana larik history_temperatures
berisi 23
dan 24
, Anda dapat menggunakan.
filter = 'ARRAY_CONTAINS_ALL(history_temperatures, [23, 24])'
Ini akan mengembalikan semua entitas di mana larik history_temperatures
berisi kedua nilai yang ditentukan.
LARIK_BERISI_APA SAJA
Operator ARRAY_CONTAINS_ANY
memeriksa apakah ada elemen dari daftar yang ditentukan yang ada dalam bidang larik. Ini berguna saat Anda ingin mencocokkan entitas yang mengandung setidaknya satu dari nilai yang ditentukan dalam larik.
Contoh
Untuk menemukan semua entitas di mana larik history_temperatures
berisi 23
atau 24
, Anda dapat menggunakan.
filter = 'ARRAY_CONTAINS_ANY(history_temperatures, [23, 24])'
Ini akan mengembalikan semua entitas di mana larik history_temperatures
berisi setidaknya salah satu nilai 23
atau 24
.
ARRAY_LENGTH
Operator ARRAY_LENGTH
memungkinkan Anda untuk memfilter entitas berdasarkan jumlah elemen dalam bidang larik. Hal ini berguna saat Anda perlu menemukan entitas dengan larik dengan panjang tertentu.
Contoh
Jika Anda ingin menemukan semua entitas di mana larik history_temperatures
memiliki kurang dari 10 elemen, Anda dapat menggunakan.
filter = 'ARRAY_LENGTH(history_temperatures) < 10'
Ini akan mengembalikan semua entitas di mana larik history_temperatures
memiliki kurang dari 10 elemen.