انتقل إلى محتوى الدرس

FULLTEXT Search MATCH AGAINST فهرس النص الكامل FULLTEXT

تعلّم إنشاء الفهارس المركبة والفريدة وفهارس النص الكامل في MySQL بأسلوب MySQL 8 الحديث مع أمثلة استعلامات SQL وتطبيقات تفاعلية.
1 صفوف تعليمية
MySQL
7 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

تصلح فهارس B+Tree للبحث عن نص مطابق تماماً أو نص يبدأ ببادئة محددة، لكنها تعجز عن تسريع البحث عن كلمة في وسط مقال طويل. لهذا الغرض يوفر محرك InnoDB فهرس النص الكامل (FULLTEXT INDEX)، والذي يعتمد على الفهرس المعكوس (Inverted Index): حيث يقسم النص إلى كلمات فردية (Tokens) ويحفظ أمام كل كلمة قائمة بأرقام الصفوف التي وردت فيها.

للبحث داخل فهرس النص الكامل نستخدم الصيغة MATCH (col1, col2) AGAINST ('search terms' [MODE]) في وضعين رئيسيين:

  • IN NATURAL LANGUAGE MODE (الافتراضي): يبحث عن الكلمات المفتاحية ويحسب درجة الصلة الإحصائية (Relevance Score) لكل صف.
  • IN BOOLEAN MODE: يدعم معاملات البحث المتقدمة مثل إلزام وجود الكلمة +mysql، واستبعاد كلمة -legacy، والبحث ببادئة الكلمة optim*.
SQL
SELECT * FROM articles WHERE MATCH(title, body) AGAINST('+innodb +index' IN BOOLEAN MODE);