Fungsi-fungsi Fungsionalitas
Anda dapat menggunakan fungsi-fungsi fungsionalitas dalam klausa filter untuk menentukan kondisi filter. Fungsi-fungsi tersebut yang mengembalikan nilai numerik dapat digunakan dalam klausa pengurutan untuk Pengurutan.
Bidang yang direferensikan dalam parameter fungsi-fungsi fungsionalitas harus dikonfigurasi sebagai bidang indeks atau bidang atribut sesuai dengan deskripsi setiap fungsi.
multi_attr: Mengembalikan nilai dari bidang array tertentu pada posisi tertentu
1. Sintaksis
multi_attr(field, pos, default_value=0|"")
2. Parameter
field: nama bidang yang nilainya akan diambil. Parameter ini harus bertipe ARRAY. Bidang yang ditentukan harus dikonfigurasi sebagai bidang atribut.
pos: subskrip yang menunjukkan posisi, dimulai dari 0. Parameter ini menentukan konstanta integer atau bidang integer. Bidang yang ditentukan harus dikonfigurasi sebagai bidang atribut.
default_value: opsional. Parameter ini menentukan konstanta string. Jika nilai pada posisi yang ditentukan oleh parameter pos tidak ada, nilai dari parameter default_value akan dikembalikan.
3. Nilai Kembali
Jika nilai pada posisi yang ditentukan oleh parameter pos ada, nilai tersebut akan dikembalikan.
Jika nilai pada posisi yang ditentukan oleh parameter pos tidak ada dan parameter default_value tidak ditentukan, 0 akan dikembalikan.
Jika nilai pada posisi yang ditentukan oleh parameter pos tidak ada dan parameter default_value ditentukan, nilai dari parameter default_value akan dikembalikan.
4. Skenario
Skenario 1: Barang memiliki beberapa harga, seperti harga pasar, harga diskon, dan harga penjualan, yang dicatat dalam bidang price. Gunakan klausa kueri berikut untuk mencari ponsel dengan harga penjualan kurang dari 1.000:
query=default:'Mobile phone'&&filter=multi_attr(price,2)<1000Skenario 2: Barang memiliki beberapa harga, termasuk harga pasar, harga diskon, dan harga penjualan, yang dicatat dalam bidang price. Anda dapat menggunakan klausa kueri berikut untuk mengurutkan hasil secara menaik berdasarkan harga diskon. Jika harga diskon tidak tersedia atau jika bidang price kosong, nilai default 600 akan diberikan ke bidang price.
query=default:'Mobile phone'&&sort=+multi_attr(price,1,"600")5. Catatan Penggunaan
Bidang yang direferensikan dalam parameter fungsi ini harus dikonfigurasi sebagai bidang atribut.
Nilai dari parameter default_value harus diapit tanda kutip ganda ("").