Lewati ke konten utama

RDocumentation: Penilaian dan Peringkat

Pelajari lebih lanjut cara hasil pencarian di RDocumentation dihasilkan!
Diperbarui 28 Sep 2026  · 7 mnt Baca

Jelajahi bersama AI

ChatGPTClaudePerplexity

Salah satu fitur inti RDocumentation.org adalah fungsionalitas pencariannya. Sejak awal, kami ingin memiliki bilah pencarian yang sangat sederhana yang menemukan apa yang Anda cari, tanpa formulir rumit yang menanyakan nama paket, nama fungsi, versi, atau apa pun. Hanya bilah pencarian sederhana.

Dalam blog teknis hari ini, kami akan menyoroti teknologi dan teknik yang kami gunakan untuk menyediakan hasil yang relevan dan bermakna bagi pengguna.

Elasticsearch

RDocumentation.org menggunakan Elasticsearch untuk mengindeks dan menelusuri semua paket dan topik R.

Elasticsearch adalah mesin pencari berskala perusahaan yang bersifat open-source, skalabel, dan terdistribusi.

Elasticsearch sangat cocok untuk menelusuri dokumentasi karena tidak menggunakan data SQL konvensional, melainkan menyimpan dokumen dalam struktur data mirip JSON. Setiap dokumen hanyalah sekumpulan pasangan key-value dengan tipe data sederhana (string, angka, daftar, tanggal, …). Sifatnya yang terdistribusi membuat Elasticsearch bisa sangat cepat.

Klaster Elasticsearch dapat memiliki banyak indeks dan setiap indeks dapat memiliki banyak jenis dokumen. Jenis dokumen hanya menjelaskan seperti apa struktur dokumen tersebut. Untuk mempelajari lebih lanjut tentang tipe di Elasticsearch, Anda dapat mengunjungi panduan di elastic.co.

RDocumentation.org menggunakan tiga jenis berbeda: package_version, topic, dan package. Dua yang pertama adalah yang utama; mari bahas package nanti.

Karena RDocumentation.org bersifat open-source, Anda dapat melihat mapping Elasticsearch di repo github kami. 

Tipe package_version

Tipe package_version seperti terjemahan dari berkas DESCRIPTION suatu paket; mencakup field utama yang dapat ditemukan di sana: package_name, version, title, description, release_date, license, url, copyright, created_at, updated_at, latest_version, maintainer dan collaborators. Field maintainer dan collaborators diekstrak dari field Authors di berkas DESCRIPTION

Tipe topic

Dokumen topik diurai dari berkas Rd, format standar dokumentasi di R. Tipe topic memiliki kunci berikut: name, title, description, usage, details, value, references, note, author, seealso, examples, created_at, updated_at, sections, aliases dan keywords.

Penilaian di Elasticsearch

Sebelum melakukan penilaian apa pun, Elasticseach terlebih dahulu mencoba mengurangi kumpulan kandidat dengan memeriksa apakah dokumen benar-benar cocok dengan kueri. Secara garis besar, kueri adalah sebuah kata (atau sekumpulan kata). Berdasarkan pengaturan kueri, Elasticsearch mencari kecocokan di field tertentu dari jenis tertentu.

Namun, kecocokan tidak selalu berarti bahwa dokumen tersebut relevan; kata yang sama dapat memiliki makna berbeda dalam konteks berbeda. Berdasarkan pengaturan kueri, kita dapat memfilter menurut tipe dan field, serta menyertakan lebih banyak informasi kontekstual. Informasi kontekstual ini akan meningkatkan relevansi dan di sinilah penilaian berperan.

Elasticsearch menggunakan Lucene di balik layar, sehingga penilaiannya didasarkan pada Fungsi Penilaian Praktis milik Lucene yang memadukan beberapa model seperti TF-IDF, Model Ruang Vektor dan Model Boolean untuk memberi skor pada dokumen.

Jika Anda ingin mempelajari lebih lanjut tentang bagaimana fungsi tersebut digunakan di Elasticsearch, Anda dapat melihat bagian panduan elastic.co ini.

Salah satu cara untuk meningkatkan relevansi adalah menerapkan boost pada beberapa field. Misalnya, dalam pencarian penuh RDocumentation.org, kami secara alami memberi boost pada field seperti package_name dan title untuk paket, serta aliases dan name untuk topik.

Memberi boost pada dokumen populer

Cara efektif lainnya untuk meningkatkan relevansi adalah memberi boost pada dokumen berdasarkan popularitasnya. Gagasannya adalah jika sebuah paket lebih populer, kemungkinan pengguna mencari paket tersebut lebih tinggi. Menampilkan paket yang lebih populer terlebih dahulu akan meningkatkan probabilitas bahwa kami menampilkan apa yang sebenarnya dicari pengguna.

Menggunakan unduhan sebagai ukuran popularitas

Ada banyak cara untuk mengukur popularitas. Kita bisa menggunakan ukuran langsung seperti suara atau peringkat yang diberikan pengguna (seperti rating pada produk Amazon), atau ukuran tidak langsung seperti jumlah barang terjual atau jumlah tayangan (untuk video YouTube).

Di RDocumentation.org, kami memilih yang terakhir. Lebih khusus lagi, kami menggunakan jumlah unduhan sebagai ukuran popularitas. Ukuran tidak langsung biasanya lebih mudah dikumpulkan karena tidak memerlukan masukan aktif dari pengguna.

Kerangka waktu

Satu masalah yang muncul saat menggunakan jumlah unduhan adalah paket lama secara alami akan memiliki total unduhan lebih banyak daripada paket yang lebih baru. Namun, itu tidak berarti mereka lebih populer; mereka hanya sudah ada lebih lama. Bagaimana jika sebuah paket sangat populer bertahun-tahun lalu, tetapi kini sudah usang dan tidak lagi aktif digunakan komunitas?

Untuk mengatasi masalah ini, kami hanya memperhitungkan jumlah unduhan dalam sebulan terakhir. Dengan begitu, skor popularitas paket lama tidak meningkat secara artifisial, dan paket usang akan cepat memudar.

Unduhan langsung vs tidak langsung

Masalah lain muncul dari dependensi terbalik. Paket R biasanya bergantung pada banyak paket lain. Paket dengan banyak dependensi terbalik akan diunduh jauh lebih sering daripada yang lain. Namun, paket-paket ini biasanya lebih low-level dan tidak digunakan langsung oleh pengguna akhir. Kita harus berhati-hati agar tidak memberikan bobot berlebihan pada jumlah unduhan mereka.

Sebagai contoh, ambil Rcpp. Lebih dari 70 persen semua paket di CRAN, jaringan arsip R komprehensif, bergantung pada paket ini, yang jelas menjadikannya paket R yang paling banyak diunduh. Namun, hanya sedikit pengguna R yang akan langsung menggunakan paket ini dan mencari dokumentasinya.

Untuk mengatasi masalah ini, kami perlu memisahkan unduhan langsung (unduhan yang terjadi karena pengguna memintanya) dan unduhan tidak langsung (unduhan yang terjadi karena paket yang bergantung diunduh). Untuk membedakan unduhan langsung dan tidak langsung dari log CRAN, kami menggunakan heuristik yang sama seperti yang dijelaskan di paket cran.stats oleh Arun Srinivasan.

Kini kami memiliki metrik popularitas yang bermakna: jumlah unduhan langsung dalam sebulan terakhir. Elasticsearch menyediakan cara mudah untuk menyuntikkan informasi tambahan ini; untuk detail lebih lanjut, lihat artikel di elastic.co ini.

Skor dimodifikasi sebagai berikut:

new_score = old_score * log(1 + number of direct downloads in the last month)

Kami menggunakan fungsi log() untuk menghaluskan nilai jumlah unduhan, karena setiap unduhan berikutnya memiliki bobot lebih kecil; perbedaan antara 0 dan 1.000 unduhan seharusnya berdampak lebih besar pada skor popularitas daripada perbedaan antara 100.000 dan 101.000 unduhan.

Penilaian ulang ini meningkatkan relevansi keseluruhan hasil pencarian yang disajikan oleh RDocumentation.org dan, sebagai hasilnya, pengguna dapat fokus membaca dokumentasi alih-alih mencarinya.

Jika Anda ingin mengetahui lebih lanjut tentang bagaimana kueri Elasticsearch diimplementasikan, Anda dapat melihat proyek RDocumentation di GitHub. Kuerinya sendiri berada di SearchController.

Jika Anda ingin mempelajari lebih lanjut tentang bagaimana RDocumentation.org diimplementasikan, lihat repo kami:



Tentang RDocumentation  

RDocumentation mengagregasikan dokumentasi bantuan untuk paket R dari CRAN, BioConductor, dan GitHub — tiga sumber paling umum untuk dokumentasi R terkini. Namun, RDocumentation.org melampaui sekadar mengagregasikan informasi ini, dengan menghadirkan seluruh dokumentasi tersebut di ujung jari Anda melalui paket RDocumentation. Paket RDocumentation menimpa fungsi bantuan dasar dari paket utils dan memberi Anda akses ke RDocumentation.org langsung dari IDE RStudio Anda. Cari paket R terbaru dan terpopuler, telusuri dokumentasi, dan poskan contoh dari komunitas. 

Topik
R
Terkait

{count, plural, one {blog} other {blogs}}

Tutorial Korelasi di R

Dapatkan pengenalan dasar-dasar korelasi di R: pelajari lebih lanjut tentang koefisien korelasi, matriks korelasi, plotting korelasi, dan sebagainya.
David Woods's photo

David Woods

13 mnt

{count, plural, one {blog} other {blogs}}

Spaghetti Plot dan Jalur Badai

Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Hugo Bowne-Anderson's photo

Hugo Bowne-Anderson

13 mnt

{count, plural, one {blog} other {blogs}}

40 Pertanyaan Wawancara DBMS Teratas di 2026

Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
Dario Radečić's photo

Dario Radečić

15 mnt

{count, plural, one {blog} other {blogs}}

12 Alternatif ChatGPT Terbaik yang Bisa Anda Coba pada 2026

Artikel ini menyajikan daftar alternatif ChatGPT yang akan meningkatkan produktivitas Anda.
Javier Canales Luna's photo

Javier Canales Luna

14 mnt

Lihat SelengkapnyaLihat Selengkapnya