همانطور که می دانید MySql برای جستجوی متن از دو امکان زیر استفاده می کند :
- LIKE statement
- regular expression
هرچند زمانی که ستون متن ما بزرگ شود و یا تعداد رکوردهای ما بسیار افزایش یابد استفاده از این دو امکان دارای محدودیت ها و مشکلات زیر می باشد :
- Performance : به دلیل اینکه در دستور LIKE یا استفاده از regular expressions ها , MySql کل جدول را جستجو می کند .این کار در تعداد رکوردهای بالا Performance خوبی ندارد .
- Flexible search :(جستجوی انعطاف پذیر ) سرچ کردن با استفاده از LIKE و regularexpression انعطاف کمی دارد . مثلا محصولاتی را بیابیم که عنوان آنها شامل کلمه ی CAR باشد ولی در آنها کلمه classic نباشد .
- ranking : هیچ راه خاصی وجود ندارد که مشخص کنیم کدام رکورد خروجی , به عبارتی که ما جستجو کردیم نزدیک تر است . در واقع به رکوردهای خروجی نمیتوان رتبه یا امتیازی داد .
به دلیل همین مشکلات , MYSQL قابلیت full-text search را اضافه کرده است . در قابلیت full-text search , مای اس کیو ال تمام کلمات مروبط به ستون مورد نظر را index می کند که این لیست معمولا به صورت مرتب شده نیز می باشد و از این به بعد جستجو را روی آنها انجام می دهد .