تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] البحث عن الكلمات المتشابهة في جدول لقاعدة بيانات
#1
السلام عليكم
رمضان مبارك سعيد ..
كما هو واضح من العنوان .. البحث عن كلمات متشابهة في جدول لقاعدة بيانات
مثلا لدينا
جدول من ثلاث خانات
الرقم و الإسم الشخصي و الإسم العائلي
و أريد البحث عن كلمة "عبد الرحمن" و الأهم أنها بالعربي
في النتيجة ..
أريد أن تظهر عبد الرحمان و عبدالرحمن
أو مثلا رقية و ارقية
....
طبعا قمت بعملية بحث فوجدت عدة دوال ك Soundex
إلا أنها على ما أعتقد غير موجوده في Access
ثم أنها لا تدعم العربية
...
ثم وجدت هدا الكود
PHP كود :
public static string ArComputeintial(string wordint length)
{
    
// Value to return
    
string value "";


    switch (
word[0])
    {
        case 
'ا':
        case 
'أ':
        case 
'إ':
        case 
'آ':
            {
                
word word.Substring(1word.Length 1);
            }
            break;

    }

    
// Size of the word to process
    
int size word.Length;
    
// Make sure the word is at least two characters in length
    
if (size 1)
    {

        
// Convert the word to character array for faster processing
        
char[] chars word.ToCharArray();
        
// Buffer to build up with character codes
        
StringBuilder buffer = new StringBuilder();
        
buffer.Length 0;
        
// The current and previous character codes
        
int prevCode 0;
        
int currCode 0;
        
// Ignore first character and replace it with fixed value

        
buffer.Append('x');
       
        
// Loop through all the characters and convert them to the proper character code
        
for (int i 1sizei++)
        {
            switch (
chars[i])
            {
                case 
'ا':
                case 
'أ':
                case 
'إ':
                case 
'آ':
                case 
'ح':
                case 
'خ':
                case 
'ه':
                case 
'ع':
                case 
'غ':
                case 
'ش':
                case 
'و':
                case 
'ي':
                    
currCode 0;
                    break;
                case 
'ف':
                case 
'ب':
                    
currCode 1;
                    break;
                
                case 
'ج':
                case 
'ز':
                case 
'س':
                case 
'ص':
                case 
'ظ':
                case 
'ق':
                case 
'ك':
                    
currCode 2;
                    break;
                case 
'ت':
                case 
'ث':
                case 
'د':
                case 
'ذ':
                case 
'ض':
                case 
'ط':
                    
currCode 3;
                    break;
                case 
'ل':
                    
currCode 4;
                    break;
                case 
'م':
                case 
'ن':
                    
currCode 5;
                    break;
                case 
'ر':
                    
currCode 6;
                    break;
            }

            
// Check to see if the current code is the same as the last one
            
if (currCode != prevCode)
            {
                
// Check to see if the current code is 0 (a vowel); do not process vowels
                
if (currCode != 0)
                    
buffer.Append(currCode);
            }
            
// Set the new previous character code
            
prevCode currCode;
            
// If the buffer size meets the length limit, then exit the loop
            
if (buffer.Length == length)
                break;
        }
        
// Pad the buffer, if required
        
size buffer.Length;
        if (
size length)
            
buffer.Append('0', (length size));
        
// Set the value to return
        
value buffer.ToString();
    }
    
// Return the value
    
return value;

من هنا
لكن كيف يمكنني إستخدامها للبحث في قاعدة البيانات Access ؟
Big Grin شكرا لكم مسبقا ...
منقطع .. للدراسة Confused
الرد }}}}
تم الشكر بواسطة:
#2
شرح بسيط.. soundex هي دالة تقوم بتحويل نص الى رمز (حرف و أرقام) يوضح طريقة نطقه....
بحيث كل مجموعة من الحروف متشابهة في النطق تمثل رقم معين
ثم يقوم البرنامج بالبحث عن جميع الكلمات المتشابهة في النطق...
لدي فكرة أن أحفظ هدا الرمز مع الإسم في قاعدة البيانات ...
لكن ستكون المشكلة الباقية هي هل soundex و بالتحديد الكود المكتوب في الموضوع ، هل يدعم العربية بشكل كاف ؟
لأني سمعت أنه لا يتعامل الى مع الكلمات الأقل من 4 حروف ... ولا ييعدعم الباك سبيس و بالتالي إسم ك عبد الرحمن سيكون مثله مثل عبد الجبار ،.... حسب هده الدالة ...
فهل من بديل??ShyBig Grin
منقطع .. للدراسة Confused
الرد }}}}
تم الشكر بواسطة: a_almisery
#3
السلام عليكم  و رحمة الله


انا ايضا لدي نفس المشكلة فعند البحث عن اسم معين في قاعدة البيانات يظهر لك البرنامج رسالة
 بعدم وجود الشخص في قاعدة البيانات رغم انه موجود فعلا  لكن مع تغيير بسيط في الكتابة
مثلا  mohamed و mhamed وذلك يعود الى كيفية كتابة الإسم و اختلاف النطق و الإملاء  

 اتمنى من اخواننا في المنتدى افادتنا 

و جزا الله الجميع ووفقنا و اياهم الى ما يحبه و يرضاه




 
ليكن دائما هدفك من التعلم منفعة اخوانك المسلمين
الرد }}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  كيفية دمج قاعدة بيانات شهادات طلاب في قالب شهادة جاهز جيولوجي مبتدئ 0 40 31-10-17, 12:19 AM
آخر رد: جيولوجي مبتدئ
  [C#.NET] المساعدة في كود البحث لايعمل وادي العوضي 2 72 01-10-17, 10:45 AM
آخر رد: وادي العوضي
  كيف نضغط قاعدة بيانات أكسس برمجيا؟ abozeyd 8 186 05-09-17, 01:17 AM
آخر رد: abozeyd
  طلب مساعدة في كيفية عمل حماية بكلمة سر لقاعدة بيانات من نوع sql Darel 8 473 28-01-17, 02:38 PM
آخر رد: EnormousSoft
  المساعدة في عمل تقرير لبيانات موظف بعد البحث برقم التسلسل وادي العوضي 6 393 24-12-16, 05:03 PM
آخر رد: وادي العوضي
  المساعدة في عملية البحث برقم التسلسل وادي العوضي 2 325 19-12-16, 06:53 AM
آخر رد: وادي العوضي
  طريقة اضافة صورة موظف في قاعدة بيانات اكسس عن طريق ال DataBindings وادي العوضي 5 658 15-12-16, 05:41 PM
آخر رد: وادي العوضي
  مشكلة في save بيانات مستوردة من ملف إكسيل أثناء حفظها في قاعدة بيانات أكسيس benomar 2 394 09-09-16, 11:14 AM
آخر رد: benomar
  [C#.NET] نقل بيانات من form application الى صفحة ويب دويد 5 534 23-06-16, 12:33 AM
آخر رد: دويد
Lightbulb [C#.NET] البحث عن البيانات بشرط معين و طباعتها info@cnr 2 497 21-04-16, 05:46 PM
آخر رد: info@cnr

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم