Carian Tapak Statik untuk Astro
Saya telah menambah fungsi carian ke tiga tapak direktori AI bulan lepas.
Saya telah membandingkan empat pilihan utama sebelum memilih Pagefind. Berikut adalah sebab mengapa saya memilihnya.
Pencabar
• Pagefind: Sebuah perpustakaan berasaskan Rust. Ia berjalan semasa waktu binaan (build time) dan menyediakan segalanya sebagai fail statik. • Algolia DocSearch: Sebuah perkhidmatan hos. Ia pantas dan kemas tetapi memerlukan kos untuk tapak komersial. • Lunr.js: Sebuah perpustakaan sisi pelanggan (client-side). Ia berfungsi secara luar talian tetapi menjadikan muatan awal halaman anda berat. • FlexSearch: Alternatif yang lebih pantas kepada Lunr, tetapi ia masih memerlukan keseluruhan indeks dihantar ke pelayar.
Mengapa saya memilih Pagefind
Saiz Indeks Tapak saya mempunyai 1,000 entri. Indeks Lunr akan menambah 4MB pada setiap muatan halaman. Pagefind menggunakan serpihan (shards). Ia memuatkan bahagian kecil semasa pengguna menaip. Muatan awal kekal di bawah 30KB.
Kos Algolia menelan kos $49 sebulan untuk tapak komersial. Jumlah bajet saya untuk ketiga-tiga tapak adalah $25 sebulan. Pagefind adalah percuma.
Deployment Pagefind mencipta fail statik. Cloudflare Pages menyimpan cache fail ini di bahagian edge secara automatik. Anda tidak perlu menguruskan kunci API atau risau tentang had kadar (rate limits).
Kekurangan
Pagefind tidak sempurna. Anda perlu mengetahui dua kekurangan ini:
• Tiada Log Carian: Pagefind berjalan di dalam pelayar. Ia tidak memberitahu anda apa yang dicari oleh pengguna. Algolia melakukan ini secara automatik. Anda mesti membina lapisan log anda sendiri untuk Pagefind. • Toleransi Kesalahan Ejaan Asas: Pagefind menggunakan stemming asas. Ia sukar mengendalikan kesalahan ejaan yang besar. Algolia mengendalikan kesalahan ejaan dengan jauh lebih baik.
Ringkasan Perbandingan
• Pagefind: Percuma, menggunakan fail statik, skala yang baik dengan pemuatan malas (lazy loading), toleransi kesalahan ejaan asas. • Algolia: $49/bulan, menggunakan infrastruktur awan, skala yang baik, toleransi kesalahan ejaan yang kuat. • Lunr.js: Percuma, menghantar indeks bersama halaman, skala yang lemah, toleransi kesalahan ejaan yang lemah.
Keputusan Saya
Jika anda mengendalikan tapak statik dengan bajet kecil dengan 500 hingga 1,000 entri, gunakan Pagefind. Jika anda memerlukan analitik lanjutan dan toleransi kesalahan ejaan yang sempurna, bayarlah untuk Algolia.
