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

كيف عمل بحث مثل محرك البحث Google .. طريقة أداءة

مغلق
بدأه FUNCTION في 7 أكتوبر 2007 · 13 رد · 1,472 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم...

مساك الله بالخير... ابي جملة الـ SQL الي تسهل لي البحث من قاعدة البيانات .. مثل البحث مال قوقل ...

خلني اوضح...

لنفرض انه لدي حقل اسمه article وفيه كلام طووووووووويل ويشمل كلمه مثل ALI , Love, Programming

ابي الكود الي لما مثلا ابحث يطلع لي هالسجل...

عشان توضح المسألة اكثر لكم... روحوا على قوقل .. google واكتب مثلا الفريق العربي " شوف لاحظ انك كتبت كلمتين 2 .... الفريق ... وكذلك كلمه العربي ..

راح يطلع لك كل المواقع الي فيهم هالكلمة ..

انا ابي يطلعون لي كل السجلات الي فيهم هالكلمتين .. الي في التكست ..

اظن الامر واضح .. اتمنى من الخبراء .. يجدون لي حل .. لاني تعببببببببببببت من البحث ...

وطيب الله انفاسكم..

تحياتي لكم ..

#2
اقتباس
لاني تعببببببببببببت من البحث ...

اسم العمود article ، الشغلة تعتمد على كود اس كيو الSQL

SELECT MyTable.* FROM MyTable WHERE article like '%الفريق العربي%'

تعديل:

لو كان لديك مربع نص وتستعمل أداة ADO إصدارة العصر الحجري فهذا الكود الذي سوف تستخدمه

dim sql1 as string
sql1="SELECT MyTable.* FROM MyTable WHERE article like '%" & Textbox1.Text & "%'"
Ado1.recordset.filter=sql1

تم تعديل هذه المشاركة بواسطة mohdabdu في 7 أكتوبر 2007 في 05:57

#3

حبيب الألب الغالي mohdabdu

الجملة الي كتبتها لي صح فعلا ... ولكن ليس هذا الي اقصده ....

لو تجرب الامر السابق وتكتب كلمتين في التكست .. [الفريق العربي] شوف لاحظ هذي كلمتين .. ! راح تطلع لك النتجية .. ولكن

خلني اوضح لك اكثر .... لنفرض انه في الحقل هذا النص article التالي لاحظ معي وركز ...

"معلومات عن المبدع mohdabdu هو احد اعضاء الفريق العربي للبرمجة .. ولدية خبرات في حل المشاكل وتحلل النظم وهو يعمل في شركة برمجة كبرى تتبع لشركات مايكروسوفت"

شوف الان ... النص السابق فيه كلمات كثيرة .. وتحتوي على كلمه [الفريق العربي] والكلمة صايرة في الوسط في النص ..

الامر السابق الي انت وضعته لي ... ما راح يطلع لي النتيجة الي انا ابيها ... فقط يطلع الي يبدأ بالكلمة من بداية الجملة ..

اتمنى انك فهمت قصدي ......................

لاحظ اخي العزيز موقع قوقل ... كيف يجلب لك البيانات ويظهر لك الكلمات من وسط المقالات .. سواء كانت في المقدمة ام في الوسط ام في الاخير ... الكلمة المراد بحث عنها....

الامر جداً هااااااااااام

بصراحة اشكرك اخي الفاضل على سرعة الاستجابة واتمنى انك تبقى معي تناقش هذه المشكلة منها نستفيد منك ونفيد ......................الغير ..

تحياتي لك

#4

انظر الرابط التالي قد يفيدك

/index.ph...mp;#entry529383

الكود التالي لإخراج النتائج إذا كانت في الوسط أو في النهاية

 SQL = "SELECT * FROM main WHERE name like '% " & Text51.Text & "%'"

تم تعديل هذه المشاركة بواسطة HhH-PROGRAMMER في 7 أكتوبر 2007 في 06:21

#5

هلا بالحبيب ..

لا ياغالي HhH-PROGRAMMER فهمتني غلط .... المثال الي وضعته كلش مايتعلق بموضوعي بتاتاُ

شوف الصورة وراح يوضح لك ..

تخيل انه لديك قاعدة بيانات .. وعندنا جدول اسمه tbl_article

وفيه حقل اسمه article

وهذا الحقل يحتوي على نص طووووووووووووووووووووويييييييييييييييل .... يعني مقالة ...

وانت زي ماتعرف المقالة يكون فيها كلام كثير .... لنفرض انه الحقل يحتوي على هذا الكلام التالي شوف ..

Semicolon is the standard way to separate each SQL statement in database systems that allow more than one SQL statement to be executed in the same call to ...

وانا اردت ان ابحث عن كلمة " SQL statement "

لاحظ انه الكلمه في وسط المقالة ... ابي يظهر لي كل المقالات الي تحتوي على الكلمه ,,,, شوف الصورة اوضح اكثر ...

11655_1191727966.jpg

اتمنىىىىىىىىىىىىىىىىىىى الامر واااضح ...

تحياتي لكم

#6

:lol:

لحــد الان لم احصل على الحــــــــــــــــــــــل ......

اتمنى من الخبراء .. التفاعل ... لانه هذا الامر في غاية الاهمية .... وراح يفيدنا ويفيد غيرنا ...

انتظر .. على احر من الجمر ... :lol:

#7

أخي الحبيب

هذا الكود يعمل

SQL = "SELECT * FROM main WHERE name like '%" & Text51.Text & "%' "
rs = db.Execute(SQL)

جرب المرفق للتأكد

البحث يعتمد على تنشيط option و التي تحمل اسم بحث بالاسم

قم بكتابة حرف ال ع

ثم اضغط على تنفيذ البحث

و ستجد النتيجة في الفليكس

أرجو أن أكون قدمت لك ما تريد

3.zip

تم تعديل هذه المشاركة بواسطة HhH-PROGRAMMER في 7 أكتوبر 2007 في 09:33

#8

الامر ليس سهلا

تحتاج لقاعدة بها كل المواقع و محتواها

وتعمل جدول Index بالكلمات المفتاحية الموجودة بالموقع

وعند البحث تستخدم Index

Google لديهم اسطول من الاجهزة للبحث

قطرة الماء تـثـقب الحجر.. لا بالعنف. لكن بتكرار المحاولة

at4re.gif

منتديات الفريق العربي للهندسة العكسية 不喜欢的勿入! www.at4re.com

#9

بالنسبة لمحركات البحث تستخدم قواعد بيانات متقدمة مثل coracle , MSSqlserver & MySql و غيرها فقواعد البيانات هذه تحتوي ادوات خاصة للبحث فيما يسمى full-text search

بعض الامثلة على البحث

للبحث عن اي كلمة

SELECT * FROM mytable WHERE freetext(mytble ,'منتدى الفريق العربي ('

للبحث عن جميع الكلمات اي يجب ان تكون كل مقالة تحتوي على هذه الكلمات

SELECT * FROM mytable WHERE contains(mytble ,'منتدى الفريق العربي ('

طبعا هذه امثلة بسيطة وسريعة فهي قبل ذلك بحاجة الى اعادادت

#10

اخي الفاضل HhH-PROGRAMMER

الكود الي انت وضعته .. اعرفه وجربته من زمااااااااااان .. ,لكن ليس هذا الي اقصده .. انت جرب في الكود الي رسلته لي ووضعته في المرفقات اكتب مثلا

"حسام ابراهيم " .. لاحظ انه هذا الاسم موجود في الداتا بيس .. ولكن لما تكتب كلمتين في البحث ومسافة ما راح يطهر لك.. اتمنى انك فهمت .. الامر

مثل البحث في قوقل .. اتمنى انك فهمت

#11

dj-sibaشكرا لك ...بس اتمنى انه اشوف حل .. طبعا انا ماابي قاعدة بيانات مواقع ..لا القصد انه سجل .. فيه مثلا اسم على سبيل المثال .. علي محمد علي ...ومثلا انا لا اعرف الا الاسم الاول والاخير ... مثلا اكتب الاسم الاول علي ,, الاخير علي .. وراح تظهر لي البيانات ...مثل محرك البحث قوقل ....الاهم هام والله

TareqVB

اخي الفاضل ... شكرا لمرورك الكريم ..اظنك انك انت الي فهمت قصدي ....طيب ممكن تشرح لنا الطريقة .. كيف ضبط الاعدادات ؟ .. انا استخدم SQL SERVER 2005 والهدف الاساسي هو مثلا ...لدي حقل فيه الاسم التالي ... علي حسين محمد .. لاحظ انه الاسم ثلاثي .... لنفرض انه لدي Textbox للبحث .. وانا مااعرف الا الاسم الاول والاخير ... مثال الاسم الاول علي .. الاسم الأخير محمد... لما اضغط على بحث .. يطلع لي كل البيانات الي تحتوي على هالاسمين ..لاحظ انه اذا اردت البحث اكتب مسافة بين الاسمين .. مثل علي محمد .. فيه مسافة بين الكلمتين ...اتمنى ان اجد حل .. لانه الامر مهم فعلا ....

تم تعديل هذه المشاركة بواسطة FUNCTION في 7 أكتوبر 2007 في 19:51

#12

بالنسبة لل full-text هذه الاعدادت ليس بالمعقدة لكن شرحها بحاجة الى وقت وكذلك دوال البحث بحاجة الى شرح فارجو ان تراجع قسم ال sql server فقد تجد ما هو مطلوب .

لكن اذا اقتصر بحثك عن اسماء او بشكل ما شغل بسيط فيمكن المعالجة بطرق اخرى مثل

استبدال الفراغات بـ % مثل

select * from mytable where data like 'arab%team%2000%''

حيث يتم احضار جميع السجلات التي تحتوي على الكلمات الثلاث وبنفس الترتيب اي لا تاتي ب team arab 2000 لكن تاتي ب arab team somthing else 2000

او اذا كان الترتيب غير مهم يمكن استخدام ال and بين الكلمات عن طريق تركيب جملة الاستعلام

select * from mytable where data like '%arab%' and '%team%' and '%2000%'

#13

اخي الفاضل TareqVB

اشكرك على المساعدة... ولاني لم اجد الحل .. الدقيق ... ولكن

يقول المثل .. الحاجة ام الاختراع ....

فقد تناقشت مع احد اصدقائي المقربين لي .. وبعد النقاش قمنا بعمل كود خاص لحل هذه المشكلة .. وأن شاء الله .. سوف اضعها بعد الانتهاء من البرمجة ....

وشكرا لك اخي الفاضل .. ولجميع من شارك في الموضوع ....

تحياتي لكم يامبرمجين

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

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