التعامل مع الهمزة و الألف المقصورة

  • fahad_m

السلام عليكم

كما يعلم الكل بأن هناك كلمات باللغة العربية فيها الهمزات و الألف المقصورة والهمزة على الكرسي، ولكن المستخدم حينما يقوم بالبحث فإنه لايضيفها مثلاً:

يكتب (الى) بدلا من (إلى)

استخدم mysql للداتابيس، هل هناك طريقة حينما يقوم المستخدم بكتابة الى بدلا من إلى، تظهر نتائج الى و إلى؟ وغيرها من الكلمات

يعني بأن تتم معاملة شكلي الحرف (أ و إ = ا)

شكرا لكم جميعا.


وجيه عوض الجيد أضف ردا

وعليكم السلام

يمكن إستخدام التعابير القياسية في التعامل مع الأشكال المتعددة للحروف (سأوضح بمثال )

إختصار المشكلة في الاتي

1- الحروف التي لديها عدد من أشكال الكتابة مثال (أإا)

2- الحروف غير القابلة للالتصاق مع الحروف التالية لها مثال (عبدالله | عبد الله) لاحظ حرف الدال

الحل هو وضع جميع الخيارات في الاستعلام

مثال للبحث عن الإسم "أحمد محمد" سأجعل الاستعلام يبدو كالاتي

select * from tableName where name REGEXP'^[آاأإ ]+حم+[د ]+محم+[د ]' 

هذا السطر يغطي البحث عن كلمة أحمد بكل أشكال رسمها (أحمد - احمد - آحمد - إحمد) ويعالج مشكلة طرق كتابة الحروف غير القابلة للإلتصاق حيث لا يتهم الكثير بعمل مسافة بعده (احمد محمد - احمدمحمد)

شرح العملية بدقة :

  1. تم إستبدال الحرف "أ" بجموعة أحتمالات كتابته "[آاأإ ]" وفي التعابير القياسية ما بين الأقواس [] يكون الرابط بين الحروف هو "او" اي توفر اي من الحروف يعطي نفس نفس النتيجة وهي تعطي (أحمد - احمد - آحمد - إحمد)
  2. تم إستبدال حرف "د" بكل احتمالة اسلوب كتابة الحرف التالي له "[د ]" هنا نخبر النظام ان يبحث في جميع احتمالات ورود حرف الدال سواء كانه بعده مسافة او لا (احمد محمد - احمدمحمد)

كتبت سكريبت بلغة php لتهئية النص بكل خياراته وسأرفق رابط لتحميله

ومتاسف علي تأخر الرد صلتني إشارة للموضوع من قبل @ahmed.alhaj ولكن شغلت عن الرد في نفس اليوم