Pengurutan kasar memilih N dokumen teratas dari seluruh hasil yang diambil untuk tahap pengurutan presisi. Pengurutan kasar memengaruhi kinerja pencarian, sedangkan pengurutan presisi menentukan urutan peringkat akhir. Gunakan ekspresi pengurutan untuk mengonfigurasi kedua tahap tersebut. Topik ini menjelaskan fungsi bawaan yang tersedia untuk ekspresi pengurutan kasar.
Fungsi fitur
static_bm25()
Mengembalikan skor relevansi teks statis antara kueri dan dokumen.
| Item | Detail |
|---|---|
| Syntax | static_bm25() |
| Parameters | None |
| Return type | FLOAT |
| Return value range | 0 to 1 |
Default behavior: static_bm25() aktif secara default ketika ekspresi pengurutan kasar default digunakan.
Jika analisis query dikonfigurasi untuk kueri, skor dapat melebihi 1. Misalnya, jikaquery=index:'苹果'diperluas menjadiquery=index:'苹果' OR index:'apple'dan sebuah dokumen berisi kedua kata kunci tersebut, skor akan diakumulasi sehingga skor pengurutan kasar akhir lebih besar dari 1.
Untuk spesifikasi lengkap, lihat static_bm25().
exact_match_boost()
Mengembalikan bobot boost maksimum dari kata kunci yang cocok dalam klausa kueri, sehingga dokumen yang cocok dengan kata kunci berbobot lebih tinggi ditempatkan di atas dokumen yang cocok dengan kata kunci berbobot lebih rendah.
| Item | Detail |
|---|---|
| Syntax | exact_match_boost() |
| Parameters | None |
| Return type | INT |
| Return value range | 0 to 99 |
Example: Diberikan klausa kueri query=default:'开放搜索'^60 OR default:'opensearch'^50, Dokumen A (berisi 开放搜索) menerima boost sebesar 60 dan Dokumen B (berisi opensearch) menerima boost sebesar 50, sehingga Dokumen A berada di peringkat lebih tinggi. Ekspresi pengurutan kasar adalah exact_match_boost().
Usage notes:
Bidang yang dirujuk dalam parameter fungsi harus dikonfigurasi sebagai bidang indeks.
Kata kunci yang tidak memiliki bobot boost yang ditentukan dalam klausa kueri menerima bobot boost default sebesar 99.
Untuk aplikasi eksklusif, tentukan bidang
sumataumax.
Untuk spesifikasi lengkap, lihat exact_match_boost().
timeliness()
Mengembalikan skor ketepatan waktu yang menunjukkan seberapa baru suatu dokumen. Bidang timestamp dalam satuan detik.
| Item | Detail |
|---|---|
| Syntax | timeliness(pubtime) |
| Parameters | pubtime — bidang yang dievaluasi; harus bertipe INT, satuan: detik |
| Return type | FLOAT |
| Return value range | 0 to 1 (lebih tinggi = lebih baru) |
Edge case: Jika nilai bidang lebih baru daripada waktu saat ini, fungsi mengembalikan 0.
Example: Gunakan timeliness(create_timestamp) dalam ekspresi pengurutan kasar untuk memberi skor dokumen berdasarkan seberapa baru dokumen tersebut dibuat.
Usage notes:
Bidang
pubtimeharus dikonfigurasi sebagai bidang atribut.
Untuk spesifikasi lengkap, lihat timeliness().
timeliness_ms()
Mengembalikan skor ketepatan waktu yang menunjukkan seberapa baru suatu dokumen. Bidang timestamp dalam satuan milidetik.
| Item | Detail |
|---|---|
| Syntax | timeliness_ms(pubtime) |
| Parameters | pubtime — bidang yang dievaluasi; harus bertipe INT, satuan: milidetik |
| Return type | FLOAT |
| Return value range | 0 to 1 (lebih tinggi = lebih baru) |
Edge case: Jika nilai bidang lebih baru daripada waktu saat ini, fungsi mengembalikan 0.
Example: Gunakan timeliness_ms(create_timestamp) dalam ekspresi pengurutan kasar untuk memberi skor dokumen berdasarkan seberapa baru dokumen tersebut dibuat.
Usage notes:
Bidang
pubtimeharus dikonfigurasi sebagai bidang atribut.
Untuk spesifikasi lengkap, lihat timeliness_ms().
normalize()
Menormalisasi nilai bidang atau hasil ekspresi menjadi tipe DOUBLE dalam rentang 0 hingga 1, sehingga skor dari rentang nilai yang berbeda dapat dibandingkan. Metode normalisasi dipilih secara otomatis berdasarkan parameter yang diberikan.
| Parameters provided | Normalization method |
|---|---|
value only | Arctangent |
value + max | Logarithmic |
value + max + min | Linear |
Syntax: normalize(value, max, min)
| Parameter | Type | Required | Description |
|---|---|---|---|
value | DOUBLE | Yes | Bidang dokumen atau ekspresi yang nilainya akan dinormalisasi |
max | DOUBLE | No | Nilai maksimum dari rentang nilai yang diharapkan |
min | DOUBLE | No | Nilai minimum dari rentang nilai yang diharapkan |
Return type: DOUBLE (0 to 1)
Examples:
| Scenario | Expression |
|---|---|
| Rentang nilai tidak diketahui | normalize(price) |
| Hanya nilai maksimum diketahui (max = 100) | normalize(price, 100) |
| Rentang nilai diketahui (max = 100, min = 1) | normalize(price, 100, 1) |
| Menormalisasi hasil fungsi lain | normalize(distance(longitude_in_doc, latitude_in_doc, longtitude_in_query, latitude_in_query)) |
Usage notes:
Bidang yang dirujuk dalam fungsi harus dikonfigurasi sebagai bidang atribut.
Metode arctangent: jika nilai bidang atau hasil ekspresi kurang dari 0,
normalize()mengembalikan 0.Metode logaritmik:
maxharus lebih besar dari 1.Metode linear:
maxharus lebih besar darimin.
Untuk spesifikasi lengkap, lihat normalize().