مشاركة مدونتي: أدوات بحث WebAssembly للمواقع الثابتة
Crane هو عرض توضيحي تقني مستوحى من Stork ويستخدم إعداد ملف تكوين شبه متطابق. لذلك كان لا بد من تسميتها على اسم طائر أيضًا.
لقد كتبته لمساعدتي في فهم كيفية عمل أدوات بحث WebAssembly. الرجاء استخدام ستورك بدلا من ذلك.
كرين هو برنامجين. يقوم البرنامج الأول بمسح مجموعة من المستندات وإنشاء فهرس فعال. يتم تحويل 1 ميجابايت من النص والبيانات التعريفية إلى فهرس بحجم 25 كيلو بايت (14 كيلو بايت مضغوط بتنسيق gzipped). البرنامج الثاني هو وحدة Wasm التي يتم إرسالها إلى المتصفح مع القليل من كود JavaScript الغراء والفهرس. والنتيجة هي محرك بحث فوري يساعد المستخدمين في العثور على صفحات الويب أثناء الكتابة.
قم بزيارة العرض التوضيحي
يتم تشغيل محرك البحث عن النص الكامل جزئيًا بكود برمجي من منشور مدونة Artem Krylysov "دعونا نبني محرك بحث عن النص الكامل".
لم يتم بذل أي جهد لتقليص ثنائي Wasm. راجع تقليل حجم ملفات Wasm.
قم بوصف ملفات المستندات الخاصة بك والبيانات التعريفية الخاصة بها.
[ input ]
files = [
{
path = " docs/essays/essay01.txt " ,
url = " essays/essay01.txt " ,
title = " Introduction "
},
# etc.
]
[ output ]
filename = " dist/federalist.crane "
قم بتمرير ملف التكوين إلى البرنامج النصي للبناء. ستحتاج إلى فهرس جديد كلما تغيرت مستنداتك ولكنك تحتاج فقط إلى إنشاء وحدة Wasm مرة واحدة فقط.
./build-index.sh federalist.toml
./build-search.sh
قم باستضافة الملفات من /dist
على موقع الويب الخاص بك (على سبيل المثال wasm_exec.js
، crane.js
، crane.wasm
، federalist.crane
). وتذهب بعيدا!
const crane = new Crane ( "crane.wasm" , "federalist.crane" ) ;
await crane . load ( ) ;
const results = crane . query ( 'some keywords' ) ;
console . log ( results ) ;
راجع العرض التوضيحي داخل /docs
للحصول على واجهة مستخدم أساسية.
./gh-pages.sh