ملعب Fuse.js
ملعب تفاعلي لاختبار وتجربة مكتبة البحث الضبابي Fuse.js. ضبط جميع خيارات البحث ومشاهدة النتائج في الوقت الفعلي.
الإدخال
الإخراج
| id | title | author | year | category |
|---|---|---|---|---|
| 1 | JavaScript: The Good Parts | Douglas Crockford | 2008 | Programming |
| 2 | Clean Code | Robert C. Martin | 2008 | Programming |
| 3 | The Pragmatic Programmer | Andrew Hunt | 1999 | Programming |
| 4 | Design Patterns | Gang of Four | 1994 | Software Engineering |
| 5 | Introduction to Algorithms | Thomas H. Cormen | 1990 | Computer Science |
| 6 | Code Complete | Steve McConnell | 1993 | Programming |
| 7 | Refactoring | Martin Fowler | 1999 | Software Engineering |
| 8 | The Mythical Man-Month | Frederick Brooks | 1975 | Project Management |
| 9 | Structure and Interpretation of Computer Programs | Harold Abelson | 1984 | Computer Science |
| 10 | Working Effectively with Legacy Code | Michael Feathers | 2004 | Programming |
ملف القراءة
ما هو البحث الضبابي؟
البحث الضبابي هو تقنية بحث تُظهر النتائج حتى عندما لا يتطابق استعلام البحث مع النص بدقة. على عكس البحث الدقيق حيث يطابق "apple" فقط "apple"، يمكن للبحث الضبابي العثور على "aple" (مع خطأ إملائي)، "Apple" (حساسية حالة مختلفة)، أو حتى "apples" (صيغة الجمع). يتم ذلك بحساب مدى تشابه سلسلتين، مع مراعاة الأخطاء الإملائية، الأخطاء المطبعية، اختلاف حالات الأحرف، والاختلافات الطفيفة. يُعد هذا أساسيًا لإنشاء تجارب بحث صديقة للمستخدم حيث لا يحتاج المستخدمون إلى كتابة استعلامات دقيقة تمامًا للعثور على ما يبحثون عنه.
كيف يعمل Fuse.js؟
Fuse.js هو مكتبة JavaScript تُنفّذ البحث الضبابي باستخدام خوارزمية مطابقة تقريبية للسلاسل. تعمل على النحو التالي:
- الفهرسة: إنشاء بنية بيانات فعّالة من البيانات القابلة للبحث لديك
- التقييم: حساب درجة تشابه بين استعلام البحث وكل عنصر (0.0 = تطابق كامل، 1.0 = لا يوجد تطابق)
- الترشيح: إرجاع النتائج التي تفي بمعايير الحد الأدنى
- الترتيب: فرز النتائج حسب الصلة بناءً على درجاتها
تتيح المكتبة خيارات قابلة للتهيئة مثل الحد (مقدار الضبابية المطلوب)، الموقع (المكان المتوقع للتطابقات)، والمسافة (المسافة القصوى من الموقع المتوقع للبحث)، مما يمنح المطورين تحكمًا دقيقًا في سلوك البحث.
وصف الأداة
Fuse.js Playground هو بيئة اختبار تفاعلية لمكتبة البحث الضبابي Fuse.js. يتيح للمطورين تجربة جميع خيارات تكوين البحث المتاحة ورؤية النتائج في الوقت الفعلي على بيانات مخصصة أو عينات. يمكنك تكوين مفاتيح البحث بأوزان مخصصة، وضبط الخيارات الأساسية مثل حساسية الحالة وتضمين النتيجة، وتعديل المعلمات المتقدمة مثل الحد، الموقع، والمسافة. توفر الأداة تغذية بصرية فورية تُظهر كيف تؤثر تغييرات التكوين على نتائج البحث، مما يجعلها مثالية لنمذجة وظائف البحث قبل التنفيذ.
الميزات
- إدخال بيانات مخصص: حمّل بيانات JSON الخاصة بك لاختبار سلوك البحث على مجموعات بيانات حقيقية
- مفاتيح بحث قابلة للتكوين: حدّد الحقول التي تُبحث فيها مع أوزان مخصصة لتحديد الأولويات
- نتائج فورية: احصل على تغذية راجعة لحظية عند تعديل استعلامات البحث أو الخيارات
- خيارات أساسية: تحكم في حساسية الحالة، تجاهل العلامات، الترتيب، وعرض النتيجة
- ضبط متقدم: عدّل الحد، الموقع، المسافة، معيار الحقل، والمزيد
- صياغة بحث موسعة: اختبر أنماط استعلام متقدمة مثل البحث بالبادئة (^)، التطابق الدقيق (!)، وغيرها
- تصوير النتائج: اعرض نتائج البحث في جدول قابل للفرز مع إظهار درجات التطابق الاختيارية
- مجموعة بيانات نموذجية: مجموعة كتب مُحمّلة مسبقًا للاختبار الفوري والتجربة
أمثلة
بحث أساسي:
- الاستعلام:
"fantasy"→ يعثر على جميع الكتب في فئة الفانتازيا - الاستعلام:
"tolkien"→ يعثر على الكتب للمؤلف J.R.R. Tolkien - الاستعلام:
"lord rings"→ يعثر على"The Lord of the Rings"رغم فقدان بعض الكلمات
مطابقة ضبابية:
- الاستعلام:
"hary poter"(أخطاء إملائية) → لا يزال يعثر على"Harry Potter" - الاستعلام:
"1984"→ يعثر على الكتاب للكاتب George Orwell - الاستعلام:
"scifi"→ يطابق فئة"Science Fiction"
بحث موسع (عند التفعيل):
- الاستعلام:
"^The"→ يعثر على العناوين التي تبدأ بـ"The" - الاستعلام:
"!Fantasy"→ تطابق دقيق لفئة"Fantasy" - الاستعلام:
"'Dune"→ يعثر على العناصر التي تحتوي على كلمة"Dune"
خيارات التكوين
مفاتيح البحث:
- حدّد الحقول التي تُبحث فيها (مثل العنوان، المؤلف، الفئة)
- عيّن أوزانًا لإعطاء أولوية لبعض الحقول (وزن أعلى = أهمية أكبر)
خيارات أساسية:
- حساسية الحالة: تطابق حالة الحروف بدقة
- تضمين النتيجة: عرض درجات الصلة (0.0 = مثالي، 1.0 = ضعيف)
- تجاهل العلامات: معاملة الأحرف المشكّلة كحروفها الأساسية (é = e)
- ترتيب النتائج: ترتيب النتائج حسب درجة الصلة
- العثور على جميع التطابقات: الاستمرار في البحث بعد العثور على أول تطابق
خيارات متقدمة:
- الحد الأدنى لطول الأحرف المتطابقة: الحد الأدنى لعدد الأحرف المطلوبة لتطابق (الافتراضي: 1)
- الموقع: الموضع المتوقع للتطابقات في النص (الافتراضي: 0 = البداية)
- الحد: مدى الضبابية المطلوبة، من 0.0 (دقيق) إلى 1.0 (ضبابي جدًا)
- المسافة: أقصى مسافة من الموقع المتوقع للبحث
- استخدام البحث الموسع: تفعيل صياغة الاستعلام المتقدمة (^، !، ', إلخ)
- تجاهل الموقع: عدم اعتبار الموضع عند المطابقة
- تجاهل معيار الحقل: عدم أخذ طول الحقل في الاعتبار عند التقييم
- وزن معيار الحقل: مدى تأثير طول الحقل على التقييم
حالات الاستخدام
- اختبار تنفيذ البحث: نمذجة والتحقق من وظيفة البحث قبل كتابة الشيفرة
- تهيئة API: تحديد إعدادات Fuse.js المثلى لتطبيقك
- تحليل سلوك البحث: فهم كيف تؤثر الخيارات المختلفة على جودة النتائج
- عرض العملاء: إظهار كيفية عمل البحث للمعنيين باستخدام بيانات حقيقية
- تعلم Fuse.js: تجربة عملية لفهم قدرات المكتبة
- اختبار بنية البيانات: التأكد من أن بنية بيانات JSON الخاصة بك تعمل مع البحث الضبابي
- ضبط جودة البحث: تحسين الحد ومعلمات أخرى للحصول على أفضل النتائج