All Products
Search
Document Center

OpenSearch:Fungsi pengurutan kasar

Last Updated:Apr 01, 2026

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.

ItemDetail
Syntaxstatic_bm25()
ParametersNone
Return typeFLOAT
Return value range0 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, jika query=index:'苹果' diperluas menjadi query=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.

ItemDetail
Syntaxexact_match_boost()
ParametersNone
Return typeINT
Return value range0 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 sum atau max.

Untuk spesifikasi lengkap, lihat exact_match_boost().

timeliness()

Mengembalikan skor ketepatan waktu yang menunjukkan seberapa baru suatu dokumen. Bidang timestamp dalam satuan detik.

ItemDetail
Syntaxtimeliness(pubtime)
Parameterspubtime — bidang yang dievaluasi; harus bertipe INT, satuan: detik
Return typeFLOAT
Return value range0 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 pubtime harus 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.

ItemDetail
Syntaxtimeliness_ms(pubtime)
Parameterspubtime — bidang yang dievaluasi; harus bertipe INT, satuan: milidetik
Return typeFLOAT
Return value range0 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 pubtime harus 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 providedNormalization method
value onlyArctangent
value + maxLogarithmic
value + max + minLinear

Syntax: normalize(value, max, min)

ParameterTypeRequiredDescription
valueDOUBLEYesBidang dokumen atau ekspresi yang nilainya akan dinormalisasi
maxDOUBLENoNilai maksimum dari rentang nilai yang diharapkan
minDOUBLENoNilai minimum dari rentang nilai yang diharapkan

Return type: DOUBLE (0 to 1)

Examples:

ScenarioExpression
Rentang nilai tidak diketahuinormalize(price)
Hanya nilai maksimum diketahui (max = 100)normalize(price, 100)
Rentang nilai diketahui (max = 100, min = 1)normalize(price, 100, 1)
Menormalisasi hasil fungsi lainnormalize(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: max harus lebih besar dari 1.

  • Metode linear: max harus lebih besar dari min.

Untuk spesifikasi lengkap, lihat normalize().