全部产品
Search
文档中心

:multi_attr

更新时间:Jun 26, 2025

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)<1000

Skenario 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 ("").