Pengurutan kasar adalah proses memilih N dokumen berkualitas tinggi teratas dari semua dokumen yang diambil. Dokumen-dokumen tersebut kemudian dinilai dan diurutkan dalam proses pengurutan halus untuk memberikan hasil yang paling sesuai dengan kebutuhan pengguna. Pengurutan kasar berpengaruh pada kinerja pencarian, sedangkan pengurutan halus memengaruhi hasil akhir. Oleh karena itu, Anda dapat menggunakan faktor-faktor utama dari pengurutan halus untuk mengurutkan dokumen secara kasar dengan cara yang efisien dan sederhana. Ekspresi pengurutan dapat digunakan baik untuk pengurutan kasar maupun halus. Topik ini menjelaskan fungsi fitur yang digunakan dalam pengurutan kasar.
Fungsi fitur
static_bm25(): mengembalikan relevansi teks statis yang menunjukkan tingkat kecocokan antara kueri dan dokumen.
Sintaks: static_bm25()
Parameter: Tidak ada
Nilai Pengembalian: Bertipe FLOAT. Nilai valid berkisar dari 0 hingga 1.
Skenario 1: Fungsi static_bm25() dapat digunakan dalam ekspresi pengurutan kasar untuk menghitung skor teks.
Catatan Penggunaan
Secara default, static_bm25() berlaku jika menggunakan ekspresi pengurutan kasar default.
Jika analisis kueri telah dikonfigurasi, skor yang dihitung menggunakan fungsi static_bm25() dapat melebihi 1. Contoh:
Sinonim dikonfigurasikan untuk klausa kueri default query=index: '苹果'. Klausa kueri berubah menjadi query=index: '苹果' OR index:'apple'. Jika sebuah dokumen berisi 苹果 dan apple, skor yang dihitung menggunakan fungsi static_bm25() untuk kedua istilah tersebut akan dijumlahkan, sehingga skor pengurutan kasar akhir lebih besar dari 1.
exact_match_boost(): menghitung bobot maksimum dari istilah tertentu dalam kueri.
Sintaks: exact_match_boost()
Parameter: Tidak ada
Nilai Pengembalian: Bertipe INT. Nilai valid berkisar dari 0 hingga 99.
Skenario: Misalkan klausa kueri adalah query=default:'开放搜索'^60 OR default:'opensearch'^50. Anda ingin mengurutkan hasil berdasarkan bobot boost yang ditentukan dalam klausa kueri untuk istilah yang cocok. Sebagai contoh, Dokumen A berisi istilah 开放搜索, dan Dokumen B berisi istilah opensearch. Dalam hal ini, Dokumen A memiliki peringkat lebih tinggi daripada Dokumen B. Ekspresi pengurutan kasarnya adalah exact_match_boost().
Catatan Penggunaan
Bidang yang direferensikan dalam parameter fungsi ini harus dikonfigurasi sebagai bidang indeks.
Bobot boost default untuk istilah tanpa bobot boost dalam klausa kueri adalah 99.
Jika fungsi exact_match_boost digunakan dalam ekspresi pengurutan kasar untuk aplikasi eksklusif, parameter fungsi dapat diatur ke 'sum' atau 'max'.

timeliness: mengembalikan skor aktualitas yang menunjukkan seberapa baru dokumennya.
Sintaks: timeliness(pubtime)
pubtime: Bidang yang dievaluasi aktualitasnya. Nilai bidang harus bertipe INT dalam satuan detik.
Nilai Pengembalian: Bertipe FLOAT. Nilai valid berkisar dari 0 hingga 1. Semakin besar nilainya, semakin baik aktualitasnya. Jika nilai bidang lebih dari waktu saat ini, 0 dikembalikan.
Skenario: Fungsi timeliness(create_timestamp) dapat digunakan dalam ekspresi pengurutan kasar untuk menghitung skor aktualitas dokumen berdasarkan bidang create_timestamp.
Catatan Penggunaan
Bidang pubtime harus dikonfigurasi sebagai bidang atribut.
timeliness_ms: mengembalikan skor aktualitas yang menunjukkan seberapa baru dokumennya.
Sintaks: timeliness_ms(pubtime)
pubtime: Bidang yang dievaluasi aktualitasnya. Nilai bidang harus bertipe INT dalam satuan milidetik.
Nilai Pengembalian: Bertipe FLOAT. Nilai valid berkisar dari 0 hingga 1. Semakin besar nilainya, semakin baik aktualitasnya. Jika nilai bidang lebih dari waktu saat ini, 0 dikembalikan.
Skenario: Fungsi timeliness_ms(create_timestamp) dapat digunakan dalam ekspresi pengurutan kasar untuk menghitung skor aktualitas dokumen berdasarkan bidang create_timestamp.
Catatan Penggunaan
Bidang pubtime harus dikonfigurasi sebagai bidang atribut.
normalize: menormalisasi skor dalam rentang nilai yang berbeda menjadi nilai numerik dalam rentang dari 0 hingga 1.
Ikhtisar Skenario: Relevansi dokumen dihitung dari dimensi yang berbeda. Skor dari dimensi yang berbeda mungkin berada dalam rentang nilai yang berbeda. Sebagai contoh, halaman web bisa memiliki jutaan klik, sementara skor relevansi teks halaman web adalah nilai dari 0 hingga 1. Anda tidak dapat membandingkan nilai-nilai seperti itu dalam rentang nilai yang berbeda. Fungsi normalize dapat menormalisasi skor dalam rentang nilai yang berbeda menjadi skor dalam rentang nilai yang sama. Dengan cara ini, Anda dapat menggunakan skor yang dinormalisasi untuk perhitungan lebih lanjut. Fungsi normalize mendukung tiga metode normalisasi: normalisasi linier, logaritmik, dan arctangent. Fungsi ini secara otomatis memilih metode normalisasi berdasarkan parameter input. Jika hanya parameter value yang diatur, fungsi normalize menggunakan fungsi arctangent untuk normalisasi. Jika parameter value dan max diatur, fungsi normalize menggunakan fungsi logaritmik untuk normalisasi. Jika parameter value, max, dan min semuanya diatur, fungsi normalize menggunakan fungsi linier untuk normalisasi.
Sintaks: normalize(value, max, min)
value: Bidang dalam dokumen atau ekspresi yang ingin dinormalisasi nilainya atau nilai pengembaliannya. Nilai bidang atau nilai pengembalian harus bertipe DOUBLE. max: Nilai maksimum rentang nilai setelah normalisasi. Parameter ini opsional. Nilai maksimum harus bertipe DOUBLE. min: Nilai minimum rentang nilai setelah normalisasi. Parameter ini opsional. Nilai minimum harus bertipe DOUBLE.
Nilai Pengembalian: Bertipe DOUBLE. Nilai valid berkisar dari 0 hingga 1.
Skenario 1: Untuk menormalisasi nilai bidang harga tanpa mengetahui rentang nilai bidang harga, gunakan sintaks berikut: normalize(harga).
Skenario 2: Untuk menormalisasi nilai bidang harga dengan nilai maksimum 100, gunakan sintaks berikut: normalize(harga, 100).
Skenario 3: Untuk menormalisasi nilai bidang harga dengan nilai maksimum 100 dan nilai minimum 1, gunakan sintaks berikut: normalize(harga, 100, 1).
Skenario 4: Untuk menormalisasi nilai pengembalian fungsi jarak menjadi nilai dari 0 hingga 1, gunakan sintaks berikut: normalize(jarak(longitude_in_doc, latitude_in_doc, longitude_in_query, latitude_in_query)).
Catatan Penggunaan
Bidang yang direferensikan dalam fungsi harus diatur sebagai bidang atribut.
Jika fungsi arctangent digunakan untuk normalisasi dan nilai bidang atau nilai pengembalian ekspresi yang ditentukan lebih kecil dari 0, nilai pengembalian fungsi normalize adalah 0.
Jika fungsi logaritmik digunakan untuk normalisasi, nilai parameter max harus lebih besar dari 1.
Jika fungsi linier digunakan untuk normalisasi, nilai parameter max harus lebih besar dari nilai parameter min.
category_score: fungsi prediksi kategori yang mengembalikan skor kecocokan antara bidang kategori yang ditentukan dalam parameter dan kategori yang diperoleh oleh kueri prediksi kategori
Sintaks
category_score(cate_id)
Parameter
cate_id: Bidang yang digunakan sebagai ID kategori untuk pelatihan model. Bidang ini harus bertipe INT.
Nilai Pengembalian: Bertipe INT. Nilai valid berkisar dari 0 hingga 2.
Skenario: Fungsi category_score(cate_id) dapat ditetapkan dalam ekspresi pengurutan. Untuk informasi lebih lanjut, lihat Gunakan fitur prediksi kategori.
Catatan Penggunaan
Fungsi ini harus digunakan bersama dengan fitur prediksi kategori.