Operator ARRAY
Milvus menyediakan operator yang kuat untuk melakukan kueri pada bidang array, memungkinkan Anda untuk memfilter dan mengambil entitas berdasarkan isi array.
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 larik.ARRAY_LENGTH(identifier): mengembalikan jumlah elemen dalam bidang larik dan dapat dikombinasikan dengan operator perbandingan untuk pemfilteran.
ARRAY_CONTAINS
Operator ARRAY_CONTAINS memeriksa apakah elemen tertentu ada dalam bidang larik. Operator ini berguna ketika 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
ARRAY_LENGTH mengembalikan panjang (jumlah elemen) dari sebuah bidang larik. Ia menerima tepat satu parameter: pengenal bidang larik.
Contoh
Untuk menemukan semua entitas di mana larik history_temperatures memiliki kurang dari 10 elemen:
filter = 'ARRAY_LENGTH(history_temperatures) < 10'
Ini akan mengembalikan semua entitas di mana larik history_temperatures memiliki kurang dari 10 elemen.