الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مشكلة غريبة عند البحث عن كلمة عربية ، هل من حل؟

مغلق
بدأه was_hal في 27 فبراير 2007 · 4 رد · 1,021 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

وصف المشكلة:

1- قاعدة البيانات مصممة في SQL SERVER 2005

2- DataBase Collation = Arabic_CS_AS

3- تحتوي على جدول وليكن اسمه MyTable يحوي حقلين الاول رقم تسلسلي مفتاح اساسي (ID) والثاني نصي (Name) نمطه Varchar

4- Column Name Collation = Arabic_CS_AS

4- يحوي الجدول على السجلين التاليين فقط

السجل الأول: ID = 1 , "قوة" = Name

السجل الثاني: ID = 2 , "قوت" = Name

5- أردت البحث عن كلمة "قوة" فكتبت الاستعلام التالي:

'قوة' SELECT * FROM MyTable WHERE Name LIKE

المشكلة :

النتيجة أظهرت السجلين السابقين معا والسبب ربما أن السيكول لم يميز بين التاء المربوطة والتاء المبسوطة أثناء تنفيذ الاستعلام

حاولت ما يلي:

1- غيرت ال Collation إلى اللغة الإنكليزية لم تحل المشكلة

2- وضعت قبل الاسم في الإضافة و الاستعلام الحرف N لكن أيضا نفس المشكلة حصلت

3- غيرت نمط الحقل إلى nvarchar لم أستفد من ذلك أيضا

ما الحل برأيكم ؟

العجيب اني لم أجد بالبحث في المنتدى أو في النت عن هذه المشكلة :blink: !!!

وشكرا لمساعدتكم

تم تعديل هذه المشاركة بواسطة was_hal في 27 فبراير 2007 في 19:46

1338031614581.png

" اللهــم إنّا مغلــوبــون فانتصــــر "

(اللهم سبحانك لا علم لنا إلا ما علمتنا إنك أنت العليم الحكيم)

#2

للرفع

1338031614581.png

" اللهــم إنّا مغلــوبــون فانتصــــر "

(اللهم سبحانك لا علم لنا إلا ما علمتنا إنك أنت العليم الحكيم)

#3

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

حاولت في اكثر من سيرفر ولكن على SQL 2000 ولكن النتيجة انه لا فرق بين التاء المربوطة والمفتوحة في الاس كيو ال مع انASCII مختلف التاء المربوطة 201 و التاء المفتوحة 202 ولكن اذا استخدمت Full Text Search فأن النتيجة صحيحة فقد خلقت full text catalog للجدول الذي وضعته وبحثت بالشكل التالي :

select * from table1 where contains(name,'قوة')

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

وكانت النتيجة صحيحة ووضعت الصورة المرفقة للتوضيح

post-43707-1172820317_thumb.gif

#4

شكرا لك mark222 على مساعدتك

لكن ألا يوجد أي حل لهذه المشكلة دون استخدام Full text Search وبالفعل إحدى المحاولات التي توصلت إليها أن لكل من التاء المربوطة و المبسوطة ASCII مختلف

هل هذا خطأ اساسا من السيكول أم أنه ممكن أن يعتبر نوع من الذكاء الاصطناعي

لكني يا جماعة لدي محرك بحث ضمن قاعدة بيانات ضخمة باللغة العربية وطبعا الدقة فيه مطلوبة

هل من حل لمعالجة هذه المشكلة في السيكول نفسه ؟

وشكرا

1338031614581.png

" اللهــم إنّا مغلــوبــون فانتصــــر "

(اللهم سبحانك لا علم لنا إلا ما علمتنا إنك أنت العليم الحكيم)

#5

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

هذا الموضوع مغلق.

مواضيع مشابهة