All Products
Search
Document Center

OpenSearch:Fungsi pengurutan kasar

Last Updated:Jun 22, 2026

Topik ini menjelaskan fungsi-fungsi yang tersedia untuk pengurutan kasar.

Ikhtisar

Pengurutan kasar merupakan tahap penyaringan awal yang secara cepat mengidentifikasi dokumen berkualitas tinggi dari hasil pencarian awal dan memilih N dokumen teratas. Dokumen-dokumen terpilih tersebut kemudian menjalani pengurutan presisi—proses penilaian lebih rinci untuk menentukan peringkat akhir. Pengurutan kasar berdampak signifikan terhadap kinerja sistem, sedangkan pengurutan presisi terutama menentukan kualitas hasil pencarian. Oleh karena itu, pengurutan kasar harus sederhana dan efisien, hanya menggunakan faktor-faktor utama dari pengurutan presisi. Anda dapat mengonfigurasi baik pengurutan kasar maupun pengurutan presisi menggunakan ekspresi pengurutan.

Fungsi

static_bm25: Relevansi teks statis

  • Untuk informasi lebih lanjut, lihat static_bm25.

  • Parameter: Tidak ada.

  • Nilai kembalian: Bilangan float dalam rentang [0, 1].

  • Kasus penggunaan: Untuk menggunakan skor relevansi teks statis dalam pengurutan kasar, atur ekspresinya menjadi static_bm25().

  • Catatan penggunaan: Fungsi static_bm25() digunakan secara default dalam ekspresi pengurutan kasar default.

Catatan

Ketika skor static_bm25() dapat melebihi 1:

Jika Anda mengonfigurasi analisis query, seperti untuk sinonim, skor tersebut mungkin lebih tinggi dari 1. Misalnya, query default adalah query=index:'apple'. Setelah Anda mengonfigurasi sinonim, query tersebut diperluas menjadi query=index:'apple' OR index:'iphone'. Jika sebuah dokumen berisi kedua kata "apple" dan "iphone", skor static_bm25() dijumlahkan. Akibatnya, skor akhir pengurutan kasar dapat melebihi 1.

exact_match_boost: Bobot boost maksimum

  • Untuk informasi lebih lanjut, lihat exact_match_boost.

  • Parameter: Tidak ada.

  • Nilai kembalian: Bilangan bulat dalam rentang [0, 99].

  • Kasus penggunaan: Untuk mengurutkan hasil berdasarkan bobot boost yang ditentukan untuk setiap kata kunci yang cocok dalam query. Sebagai contoh, pertimbangkan query query=default:'Open Search'^60 OR default:'opensearch'^50. Jika dokumen A berisi "Open Search" dan dokumen B berisi "opensearch", dokumen A akan diberi peringkat lebih tinggi daripada dokumen B. Untuk mencapai hal ini, atur ekspresi pengurutan kasar menjadi exact_match_boost().

  • Catatan penggunaan:

    • Fungsi ini memerlukan bidang target agar diindeks.

    • Untuk istilah query yang tidak memiliki nilai boost yang ditentukan, nilai boost default-nya adalah 99.

    • Untuk aplikasi eksklusif, saat Anda mengonfigurasi fungsi exact_match_boost dalam pengurutan kasar, Anda dapat menggunakan salah satu opsi parameter berikut: '', 'sum', atau 'max'. Pada halaman pengeditan kebijakan, untuk fitur penilaian exact_match_boost(), pilih metode agregasi dari daftar drop-down search field: max atau sum. Kemudian, atur weight yang sesuai.

timeliness: Skor ketepatan waktu

  • Sintaks: timeliness(pubtime). Untuk informasi lebih lanjut, lihat timeliness.

  • Parameter: pubtime adalah bidang yang dievaluasi. Bidang tersebut harus bertipe int, dan nilainya harus berupa Stempel waktu UNIX dalam satuan detik.

  • Nilai kembalian: Bilangan float dalam rentang [0, 1]. Nilai yang lebih besar menunjukkan dokumen yang lebih baru. Jika stempel waktu berada di masa depan, fungsi ini mengembalikan 0.

  • Kasus penggunaan: Hitung skor ketepatan waktu dari bidang create_timestamp dalam pengurutan kasar. Atur ekspresinya menjadi timeliness(create_timestamp).

  • Catatan penggunaan: Anda harus mengonfigurasi bidang pubtime sebagai bidang atribut.

timeliness_ms: Skor ketepatan waktu

  • Sintaks: timeliness_ms(pubtime). Untuk informasi lebih lanjut, lihat timeliness_ms.

  • Parameter: pubtime adalah bidang yang dievaluasi. Bidang tersebut harus bertipe int, dan nilainya harus berupa Stempel waktu UNIX dalam satuan milidetik.

  • Nilai kembalian: Bilangan float dalam rentang [0, 1]. Nilai yang lebih besar menunjukkan dokumen yang lebih baru. Jika stempel waktu berada di masa depan, fungsi ini mengembalikan 0.

  • Kasus penggunaan: Hitung skor ketepatan waktu dari bidang create_timestamp dalam pengurutan kasar. Atur ekspresinya menjadi timeliness_ms(create_timestamp).

  • Catatan penggunaan: Anda harus mengonfigurasi bidang pubtime sebagai bidang atribut.

normalize: Fungsi normalisasi

  • Saat menghitung relevansi, kualitas suatu dokumen diukur berdasarkan berbagai dimensi. Skor dari dimensi-dimensi tersebut mungkin memiliki rentang nilai yang sangat berbeda. Sebagai contoh, jumlah klik halaman bisa mencapai jutaan, sedangkan skor relevansi teks statis berada di antara 0 dan 1. Skor-skor tersebut tidak dapat dibandingkan secara langsung. Untuk menggabungkan skor-skor berbeda ini dalam satu rumus, Anda harus menormalisasikannya ke rentang yang sama. Fungsi normalize menyederhanakan proses ini dan mendukung tiga metode normalisasi: linear, logaritmik, dan arctangent. Fungsi ini secara otomatis memilih metode berdasarkan parameter yang Anda berikan. Jika hanya parameter value yang ditentukan, fungsi ini menggunakan metode arctangent. Jika Anda menentukan value dan max, fungsi ini menggunakan metode logaritmik. Jika Anda menentukan value, max, dan min, fungsi ini menggunakan metode linear.

  • Sintaks: normalize(value, max, min). Untuk informasi lebih lanjut, lihat normalize.

  • Parameter: value adalah nilai yang akan dinormalisasi, yang harus bertipe double. Nilai ini dapat berasal dari bidang dokumen atau ekspresi lain. max adalah nilai input maksimum opsional, yang harus bertipe double. min adalah nilai input minimum opsional, yang harus bertipe double.

  • Nilai kembalian: Nilai double dalam rentang [0, 1].

  • Kasus penggunaan:

    • Skenario 1: Untuk menormalisasi bidang price tanpa mengetahui rentang nilainya, gunakan ekspresi berikut: normalize(price).

    • Skenario 2: Untuk menormalisasi bidang price saat Anda hanya mengetahui nilai maksimumnya adalah 100, gunakan ekspresi berikut: normalize(price, 100).

    • Skenario 3: Untuk menormalisasi bidang price saat Anda mengetahui nilai maksimumnya adalah 100 dan nilai minimumnya adalah 1, gunakan ekspresi berikut: normalize(price, 100, 1).

    • Skenario 4: Untuk menormalisasi hasil fungsi distance ke rentang [0, 1], gunakan ekspresi berikut: normalize(distance(longitude_in_doc, latitude_in_doc, longitude_in_query, latitude_in_query)).

  • Catatan penggunaan:

    • Bidang yang digunakan sebagai parameter fungsi harus dikonfigurasi sebagai bidang atribut.

    • Saat menggunakan metode arctangent untuk normalisasi, jika value kurang dari 0, nilai ternormalisasi adalah 0.

    • Saat menggunakan metode logaritmik untuk normalisasi, nilai max harus lebih besar dari 1.

    • Saat menggunakan metode linear untuk normalisasi, nilai max harus lebih besar dari nilai min.