All Products
Search
Document Center

OpenSearch:Klausa Pengurutan

Last Updated:Aug 22, 2026

Klausa pengurutan mengontrol urutan hasil kueri berdasarkan satu atau beberapa bidang. Tanpa klausa ini, hasil secara default diurutkan menurun berdasarkan skor relevansi (RANK).

Sintaksis

Klausa pengurutan mengikuti format berikut:

+field1;-field2
  • + mengurutkan bidang dalam urutan menaik.

  • - mengurutkan bidang dalam urutan menurun.

  • Pisahkan beberapa aturan pengurutan dengan titik koma (;).

  • Gabungkan bidang menggunakan operator aritmetika (+, -, *, /) untuk mengurutkan berdasarkan nilai yang dihitung. Bidang yang digabungkan oleh operator harus memiliki tipe data yang sama.

  • Urutkan berdasarkan bidang RANK untuk mengurutkan hasil berdasarkan skor relevansi, yang dihitung oleh ekspresi pengurutan.

Referensi Cepat

ContohHasil
+priceMenaik berdasarkan price
-priceMenurun berdasarkan price
-(hits+comments)Menurun berdasarkan jumlah hits dan comments
+type;-RANKMenaik berdasarkan type; hasil seri dipecahkan berdasarkan relevansi menurun
+distance(lon,lat,"120.34256","30.56982")Menaik berdasarkan jarak dari koordinat yang diberikan

Pengurutan Multidimensi

Klausa pengurutan dapat mencakup beberapa aturan pengurutan yang dipisahkan oleh titik koma. Hasil diurutkan berdasarkan aturan pertama; jika nilainya sama, aturan berikutnya diterapkan, dan seterusnya.

sort=-field1;-field2;-field3

Kinerja pengurutan multidimensi bergantung pada karakteristik bidang dan tidak dijamin. Untuk kinerja yang lebih baik, gunakan ekspresi penyortiran halus untuk menggabungkan beberapa sinyal bidang menjadi satu skor numerik:

normalize(field1)*100+normalize(field2)*10+normalize(field3)+first_phase_score*10000

Di sini, first_phase_score adalah skor yang dihitung oleh ekspresi pengurutan kasar. Pendekatan ini memberikan kinerja pengurutan yang dapat diprediksi dan memungkinkan Anda menyesuaikan bobot bidang secara eksplisit. Untuk detail selengkapnya, lihat Fine sort functions.

Batasan

  1. Klausa pengurutan bersifat opsional. Tanpa klausa tersebut, hasil diurutkan berdasarkan RANK dalam urutan menurun. Jika klausa pengurutan tidak melibatkan bidang RANK, ekspresi pengurutan tidak berlaku.

  2. Bidang dalam klausa pengurutan harus merupakan bidang atribut yang didefinisikan dalam skema aplikasi.

  3. Fungsi fungsionalitas yang mengembalikan nilai INT atau FLOAT dapat digunakan sebagai bidang pengurutan.

  4. Untuk bidang LITERAL: huruf diurutkan secara alfabetis, angka diurutkan digit per digit pada setiap posisi, dan karakter Tionghoa diurutkan berdasarkan nilai ASCII.

  5. Bidang ARRAY tidak didukung dalam sebagian besar skenario.

Fungsi Fungsionalitas yang Didukung

distance

Mengembalikan jarak bola antara dua titik. Umumnya digunakan untuk mengurutkan hasil berdasarkan kedekatan dalam skenario layanan berbasis lokasi (LBS).

Contoh: Urutkan hasil pencarian restoran berdasarkan jarak dalam urutan menaik.

query=default:'Restaurant name'&&sort=+distance(lon,lat,"120.34256","30.56982")

Untuk referensi fungsi lengkap, lihat distance.

tag_match

Mencocokkan klausa kueri terhadap dokumen berdasarkan tag dan memberi skor dokumen berdasarkan bobot tag yang cocok.

Contoh:

sort=-tag_match("user_options", options, "mul", "sum", "false", "true", 100)

Untuk referensi fungsi lengkap, lihat tag_match.

Contoh

Urutkan berdasarkan bidang, lalu berdasarkan relevansi

Cari "Zhejiang University" dan urutkan hasil berdasarkan type menaik, dengan hasil seri dipecahkan berdasarkan relevansi teks menurun.

query=default:'Zhejiang University'&&sort=+type;-RANK

Ekspresi penyortiran halus dapat berupa text_relevance(field). Untuk detail konfigurasi kebijakan pengurutan, lihat Configure sort policies.

Urutkan berdasarkan nilai bidang yang dihitung

Cari "Zhejiang University" dan urutkan hasil berdasarkan total gabungan hits dan comments dalam urutan menurun.

query=default:'Zhejiang University'&&sort=-(hits+comments)

Langkah Selanjutnya