في الحقيقة قبل فترة كنت أبحث عن طريقة يمكن من خلالها ترتيب نتائج البحث حسب الاقرب لكلمة البحث ولاحظت ان هذا الامر لم يتم التطرق له في كثير من المنتديات العربية .
على العموم كانت نتيجة بحثي هو تنفيذ الاستعلام على حسب الطريقة العامة التالية :
كود PHP:
select * from table where ((`field` REGEXP 'ص(ا|أ|إ|آ)لح')) ORDER BY ((CASE WHEN `field` REGEXP 'ص(ا|أ|إ|آ)لح' THEN 1 ELSE 0 END)) DESC
طبعا هذه الطريقة تفيد في حالة كانت كلمة البحث اكثر من كلمتين فهو يقوم بترتيب النتائج بحسب المدخلات التي تحتوي الكلمتين معاً ومن ثم التي تحتوي على احدى الكلمتين وهو الحال ايضا مع اكثر من كلمتين .
ولكن إذا كانت كلمة البحث كلمة واحدة فقط فـ”كأنك يا أبو زيد ما غزيت” .
وكنت قد تشاركت هذا الحل مع الاستاذ / خالد الشمعة وقام بإضافته إلى الكائن الرائع ArQuery
والآن نريد ان نجد طريقة افضل لترتيب النتائج بحسب الاقرب لكلمة البحث لذلك نريد ان نتشارك الحلول حتى نحصل على افضل نتيجة
لمن لا يستطيع المشاركة هنا يمكنه المشاركة من خلال المدونة
ترتيب النتائج حسب الاقرب لكلمة البحث | صالح المطرفي
أخوكم / صالح المطرفي