Posting blog saya: Alat Pencarian WebAssembly untuk Situs Statis
Crane adalah demo teknis yang terinspirasi oleh Stork dan menggunakan pengaturan file konfigurasi yang hampir identik. Jadi itu harus diberi nama berdasarkan nama burung juga.
Saya menulisnya untuk membantu saya memahami cara kerja alat pencarian WebAssembly. Silakan gunakan Bangau sebagai gantinya.
Crane adalah dua program. Program pertama memindai sekelompok dokumen dan membuat indeks yang efisien. Teks dan metadata 1MB diubah menjadi indeks 25KB (14KB gzip). Program kedua adalah modul Wasm yang dikirimkan ke browser bersama dengan sedikit kode lem JavaScript dan indeksnya. Hasilnya adalah mesin pencari instan yang membantu pengguna menemukan halaman web saat mereka mengetik.
Kunjungi demonya
Mesin pencari teks lengkap sebagian didukung dengan kode dari postingan blog Artem Krylysov Mari kita membangun mesin Pencarian Teks Lengkap.
Tidak ada upaya yang dilakukan untuk mengecilkan biner Wasm. Lihat Mengurangi ukuran file Wasm.
Jelaskan file dokumen Anda dan metadatanya.
[ input ]
files = [
{
path = " docs/essays/essay01.txt " ,
url = " essays/essay01.txt " ,
title = " Introduction "
},
# etc.
]
[ output ]
filename = " dist/federalist.crane "
Teruskan file konfigurasi ke skrip build. Anda akan menginginkan indeks baru setiap kali dokumen Anda berubah tetapi Anda hanya perlu membuat modul Wasm sekali saja.
./build-index.sh federalist.toml
./build-search.sh
Host file dari /dist
di situs web Anda (misalnya wasm_exec.js
, crane.js
, crane.wasm
, federalist.crane
). Dan pergilah!
const crane = new Crane ( "crane.wasm" , "federalist.crane" ) ;
await crane . load ( ) ;
const results = crane . query ( 'some keywords' ) ;
console . log ( results ) ;
Lihat demo di dalam /docs
untuk UI dasar.
./gh-pages.sh