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

برمجة محرك بحث !؟

بدأه El Sa7eR في 9 مايو 2012 · 17 رد · 7,910 مشاهدة · في هندسة البرمجيات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

مساء الخير على الشباب جميعاً

كان لدى سؤال لأنى أفكر بالعمل على إنشاء محرك بحث و لكن بمطلق مختلف

و لكنى ابحث عن اللغة المناسبة لتعلمها مع العلم لدى فكرة مسبقة عن كلاً من HTML , CSS , Java Script و بيئة دوت نت من خلال لغة C# و أيضاً بعض PHP الخفيف جداً

و كنت اود برمجة محرك بحث فما هى اللغة التى على أن اتوجه لها !؟

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

و هل سأحتاج لأكثر من لغة فى الإستعمال !؟ مثلاً لغة من أجل برمجة العناكب و لغة من اجل التعامل مع قاعدة البيانات و المستخدم بشكل مباشر ،

جئت للخبراء و اتمنى ما أرد خائباً

و شكراً لأى مساعدة

#2
اقتباس
ما هى اللغة التى تستطيع ان توفر لى إمكانية برمجة عناكب بحث تدخل تجوب المواقع تجلب الجديد و تضعه بشكل آلى بقواعد البيانات

أغلب اللغات تقريباً. سؤالك ليس مناسب. كون الشخص كتب عنكبوت بحث ولديه قاعدة بيانات لايعني أنه إمتلك محرك بحث جيد. محركات البحث لها نظرياتها وتتطلب دراسة إكاديمية كي تفهم نظرياتها ومفاهيم البحث وتحليل البيانات كي تعمل شيء ناجح.

#3

هناك محركات بحث مفتوحة المصدر

أشهرها وأقواها محرك البحث lucene من اباتشي

وأكثر المشاريع البرمجية يستخدمون هذا المحرك لقوته وكونه مفتوح المصدر، على سبيل المثال، تويتر تستخدم lucene في موقعها

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

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

لكن هذا لا يعني أنك غير قادر على عمل شيء مفيد وعملي

بإمكانك أن تبني ما يفيدك ويخدمك من تطبيقات تعمل Crawling وفهرسة وتحليل

ما كنت أٌقصده هو بناء محرك بحث كبير

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

- وكذلك تستطيع أن تبني تطبيقات بنفسك

- كان عندنا مشروع في الجامعة لمادة data retrieval أننا نبني تطبيق يجوب موقع ويفهرس ما بداخله وفعلا بنيناه وكان جميل

- جميع اللغات مناسبة لهذا العمل، باعتقادي أنه لغة الجافا أنسب لغة لمثل هذي المشاريع

راجع هذا الموضوع:

نظرة سريعة عن lucene

/index.php?showtopic=224410

تم تعديل هذه المشاركة بواسطة بـارع في 10 مايو 2012 في 04:28

3
#4
Mr.B كتب:

أغلب اللغات تقريباً. سؤالك ليس مناسب. كون الشخص كتب عنكبوت بحث ولديه قاعدة بيانات لايعني أنه إمتلك محرك بحث جيد. محركات البحث لها نظرياتها وتتطلب دراسة إكاديمية كي تفهم نظرياتها ومفاهيم البحث وتحليل البيانات كي تعمل شيء ناجح.

شكراً للإهتمام و الرد و لكن بالنسبة لى أهم شئ صراحةً عناكب الأرشفة ، لأن فكرتى لن تكون مثل محرك البحث بل فكرة مشابهة له

و لن تستخدم لعرض نتائج بحث من مواقع مثل جوجل او ياهوو او بينج إلخ ......

بل سيتم دمج ذكاء إصطناعى لمعالجة بعض الأشياء

بـارع كتب:

هناك محركات بحث مفتوحة المصدر

أشهرها وأقواها محرك البحث lucene من اباتشي

وأكثر المشاريع البرمجية يستخدمون هذا المحرك لقوته وكونه مفتوح المصدر، على سبيل المثال، تويتر تستخدم lucene في موقعها

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

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

لكن هذا لا يعني أنك غير قادر على عمل شيء مفيد وعملي

بإمكانك أن تبني ما يفيدك ويخدمك من تطبيقات تعمل Crawling وفهرسة وتحليل

ما كنت أٌقصده هو بناء محرك بحث كبير

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

- وكذلك تستطيع أن تبني تطبيقات بنفسك

- كان عندنا مشروع في الجامعة لمادة data retrieval أننا نبني تطبيق يجوب موقع ويفهرس ما بداخله وفعلا بنيناه وكان جميل

- جميع اللغات مناسبة لهذا العمل، باعتقادي أنه لغة الجافا أنسب لغة لمثل هذي المشاريع

راجع هذا الموضوع:

نظرة سريعة عن lucene

/index.php?showtopic=224410

أقدر لكـ إهتمامك و وقتك فى الرد على بالنسبة للموضوع سآخذ وقت و بالتأكيد الإنسان يحاول تنمية معرفته فى القراءة و لكن هل لك أن تقترح مكان أقرأ به !؟

عامةً أجوب الشبكة باحثاً الجديد فهل لك ان تقترح علىّ !؟ بالنسبة للفكرة كما ذكرت سابقاً أريد أن اجعلها تعتمد على الذكاء الصناعى بالإضافة لفكرة الأرشفة و عناكب البحث ،،

#5

ممكن توضح قليلا حتى ممكن نقدر نساعدك، ماذا تريد بالضبط

لكن بشكل عام أول شيء وأهم شيء تفهم التركيبة والصورة الكلية قبل ما تبدأ في العمل وقبل الدخول في التفاصيل

كيف تعمل محركات البحث؟

ما هي الاجزاء الرئيسية؟

Crawler, Indexer, Parser

ما وظيفة كل جزء وهل ممكن نستغني عن واحد منهم؟

ترتيب العمل كيف تتصل هذه الاجزاء فيما بينها

إذا فهمت جيدا تركيبة محرك البحث، ووظيفة كل جزء في التركيبة وكيف هم متصلين ببعض، كذا تكون انتهيت

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

- ليس لدي معرفة كبيرة، لكن الموضوع بسيط الفهم، ولا تتصور أن المسألة معقدة أو تحتاج ذكاء اصطناعي ونظم خبيرة، الموضوع أبسط بكثير

نعم تحتاج لهذه الأشياء إذا كان احتياجك كبير وصعب تطبيقه

من الناحية التطبيقية

- الـ Crawler الزاحف: وظيفته الاساسية البحث عن جميع الروابط في موقع معين ثم حفظهم في ملف

تعطيه صفحة رئيسية يضعها في String، ثم يبحث بداخل الـ string عن جمل فيها http:// فيأخذ جميع الروابط ويضعها في كيو، ثم يدخل كل رابط في الكيو ويعمل نفس الشيء يفتش فيه عن روابط وهكذا يدخل صفحات الموقع الفرعية بحثنا عن روابط

لكنه لا يضيف الروابط الخارجية ولا يزورها، وكذلك يتأكد اذا اراد ان يضيف في كيو هل أضفناه من قبل أم لا

- في النهاية ينتج عندك مثلا 300 رابط تحفظهم في فايل

فقط هذه وظيفته وموضوعه سهل

- اذا كان لديك الروابط جاهزة او الملفات جاهزة، هنا أنت لست بحاجة للكراولر مطلقا، مثلا لديك ألف كتاب وورد.

- الامر الثاني وهو الـ Indexer وهذا يعتمد على متطلباتك وماذا تريد، الـ Indexer هو الجزء الرئيسي في محرك البحث

عندك الآن 300 ملف html جهزهم الكراولر ماذا تريد أن تعمل بهم

قد يكون المواقع التي تعمل عليها مواقع فتاوى

فتكون وظيفة الاندكسر أخذ جميع الفتاوى ووضعها في قاعدة بيانات

أو قد يكون الموقع الذي تعمل عليه موقع صحيفة

فيكون احتياجك وطلبك أن تسحب جميع المقالات

او قد يكون احتياجك ان تسحب جميع الصور في هذه الصحيفة وتحفظها فتبحث داخل كل ملف html عن ".jpg"

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

فتقوم بالبحث داخل كل الملفات لتحدد المقالات التي تتحدث عن باكستان

او قد يكون موقع صوتيات فتبحث في الـ300 صفحة عن روابط ".mp3" او ".wav" او ".rm"

ثم تقوم بإنزال جميع الملفات الصوتية

ذكرت مثال حتى يتضح أن الامر بسيط وليس بذاك التعقيد

حنا عملنا مشروع في الجامعة باسبوع، كان المطلوب كل واحد يختار موقع فتاوى ثم يحفظ جميع الفتاوى في قاعدة بيانات

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

أما محركات البحث العادية، أمرها أسهل بكثير

- يستطيع أي أحمقٍ جعل الأشياء تبدو أكبر وأعقد, لكنك تحتاج إلى عبقري لجعلها تبدو عكس ذلك. انشتاين

- العلم نقطة، كبرها الجهال. علي بن ابي طالب

تم تعديل هذه المشاركة بواسطة بـارع في 11 مايو 2012 في 07:32

3
#6

شكراً لك لهذا الإيضاح و صراحةً أفادنى و أوضح لى كثير من الأشياء ، بالنسبة لفكرتى

سأحاول أن أذكرها لك بشكل مختصر ، و هى ببساطة إنشاء موقع للرد على سؤال ، و الإجابات سيتم الحصول عليها من خلال الإنترنت بشكل أوتوماتيك و لكن سيطبق خوارزمية لتفصيل البيانات الجيدة من السيئة

و كان فكرى إنها ستحتاج إلى ذكاء صناعى لمعالجة البيانات و تفريقها و فهمها ، ما رأيك ؟ّ! و ما هى الإحتياجات لتطبيق مثل هذه الفكرة ؟

#7

أغلب الأدوات موجودة من لغات ومكتبات ومتوفرة على الشبكة ولكن مهمة كهذه تحتاج إلى دراسة في اللغة لأنها تعتمد على التحليل الصرفي وهذا الجزء الذي يتطلب تفكير وإعداد, خصوصاً مع اللغة اللعربية. مثلاً لو سأل شخص :

ما لون السماء؟

البرنامج يلزمه القدرة على إصلاح السؤال , كحال وجود خطأ نحوي, ثم تقطيع الكلمات وإعرابها لتمييز الجزء المهم من السؤال وعن ماذا يسأل المستخدم ويستخدمه كمفتاح ويتوقّع بنية جملة الإجابة:

ما (شكل|لون|وزن..إلخ) يبحث عن صفات.

هل ... ؟ سؤال منطق إجابته بنعم أم ﻻ.

من ... ؟ يبحث عن إسم.

كيف ... ؟ تفسير أطول.

المهمة أسهل لإن المدخلات أسئلة. هذا قلب البرنامج إذا أنهيته فمابعده سهل. توجد برامج ومكتبات حرّة للتحليل الصرفي ربما تود الإستفادة منها مثل الخليل الصرفي و تاشفين. أيضاً إستفد من التجاررب السابقة في هذا المجال في النت بالبحث عن خورزميات إيجاد أجوبة الأسئلة question answering, هذه الورقة ستكون بداية جيدة لهذا الموضوع A Search Algorithm for Question Answering.

3
#8

شكراً لكم جميعاً لدى سؤال و اعتذر إن كان يدل على قلة المعرفة ،، لقد تعلمت من قبل C# بموجب العمل تحت بيئة .net و قد ارتحت بالتعامل معها و قد كان لدى بعض المعرفة البسيطة بحكم تعاملى مع برامج إدارة المحتوى البسيطة مثل وردبريس و جوملا

و سؤال هل أبدأ بتعلم لغة مثل PHP الآن ام ابحث عن اللغة التى سيقوم مشروعى بالبناء على اساسها و تعلمها و اكون شاكر لكم جميعاً

دمتم بود

Mr.B كتب:

أغلب الأدوات موجودة من لغات ومكتبات ومتوفرة على الشبكة ولكن مهمة كهذه تحتاج إلى دراسة في اللغة لأنها تعتمد على التحليل الصرفي وهذا الجزء الذي يتطلب تفكير وإعداد, خصوصاً مع اللغة اللعربية. مثلاً لو سأل شخص :

ما لون السماء؟

البرنامج يلزمه القدرة على إصلاح السؤال , كحال وجود خطأ نحوي, ثم تقطيع الكلمات وإعرابها لتمييز الجزء المهم من السؤال وعن ماذا يسأل المستخدم ويستخدمه كمفتاح ويتوقّع بنية جملة الإجابة:

ما (شكل|لون|وزن..إلخ) يبحث عن صفات.

هل ... ؟ سؤال منطق إجابته بنعم أم ﻻ.

من ... ؟ يبحث عن إسم.

كيف ... ؟ تفسير أطول.

المهمة أسهل لإن المدخلات أسئلة. هذا قلب البرنامج إذا أنهيته فمابعده سهل. توجد برامج ومكتبات حرّة للتحليل الصرفي ربما تود الإستفادة منها مثل الخليل الصرفي و تاشفين. أيضاً إستفد من التجاررب السابقة في هذا المجال في النت بالبحث عن خورزميات إيجاد أجوبة الأسئلة question answering, هذه الورقة ستكون بداية جيدة لهذا الموضوع A Search Algorithm for Question Answering.

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

#9

Mr.B شكرا للفوائد، وشكرا على الروابط، أشكرك جدا على الاضافات المفيدة

أول شيء، قبل البدء في أي مشروع سواءا كان صناعي او زراعي او علمي او برمجي

قبل البداية في أي مشروع لازم يتم النظر جيدا: هل المشروع أو الفكرة جاءت لتعالج حاجة ونقص موجود، وتفيد الناس وهم يحتاجون فعلا لهذا المشروع؟

إذا تم تطبيق هذا الحل هل سيحل مشكلة يعاني منها الناس؟

إذا كان الجواب نعم وهناك حاجة ماسة فعلا لحل مشكلة قائمة، ولا يوجد من قام بحلها أو كان يوجد حل ضعيف ولم يلبي الحاجة

هنا تكون الفكرة بإذن الله ناجحة جدا، لأنها جاءت لتقدم حل وفائدة ونقص يطلبه الناس بشدة

لازم يكون هناك تحليل منطقي وواقعي وعمل دراسة لهذا الأمر، في الأساس يتم جمع عدة أفكار وتدرس جيدا ثم يتم اختيار الفكرة المناسبة

على سبيل المثال: يوجد في المنتدى موضوع لبرمجة تطبيق لحل مشكلة في الشطرنج يحسب أقل تحركات للحصان!! وبعض الاعضاء جالس شهر يطور في هذا التطبيق

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

ومن الجانب الآخر، برنامج او موقع بسيط جدا للآيفون، يجمع أخبار الطرق في القاهرة فوريا، ويخبرك أن هذا الطريق فيه حادث ومتوقف كليا امسك الطريق الآخر ولا يحتاج لخوارزميات معقدة كما في الشطرنج

كذلك:

- موقع uzerat.com استخدمه بشكل مستمر يحل لي مشكلة كنت أعاني منها،

- موقع الباحث العربي: قاموس عربي عربي

المشروع الاول جهد شهرين وكود متقدم جدا ولا يوجد مستخدمين، المشروع الثاني جهد بسيط ومستخدمين بالمئات ومشروع قدم فائدة وأتى ليسد حاجة عند الناس يستخدمه أقاربي بشكل يومي

هذا ما جعلني أترك العمل في الفريق الذي كان يقوم بتطوير محرك البحث العربي، كانوا يطورون المشروع مع وجود قوقل، جلست معهم شهر ثم تركتهم ثم هم أمضوا سنتين تقريبا ثم توقفوا

دراسة هذا الأمر مهمة جدا قبل أي مشروع وهذا خلاصة علم التسويق، 1- تشوف الجمهور 2- وتشوف المنافسين، إذا لا يوجد جمهور يرغب بالعمل تترك المشروع، إذا يوجد شخص سبقك وقام بالعمل جيدا تبحث عن فكرة أخرى، إذا كان هناك ضعف في من سبقك وترى أن لديك نقاط قوة تعالج الضعف وتقدم شيء متفوق تتقدم وتبادر في العمل

وهكذا تعمل جميع الشركات، مثلا شركة اتصالات كبيرة مثل فودافون او زين قبل ما تدخل الى دولة ترى الجمهور وترى المنافسين

للتوسع: دورة علم التسويق في ساعتين مركزة جدا، شاهدتها أكثر من مرة، وراح يتكلم عن أشياء نحتاجها فعلا وواقعية بعيدا عن التنظير

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

ودورة علم التسويق فيها قواعد أخرى هامة

3
#10

أخ بارع ، استطيع أن أقول حقاً إنك إسم على مسمى ، شكراً كثيراً على معلوماتك و بالفعل فكرتى أشعر بأنها غير مطبقة من قبل و ستأتى بفائدة كبيرة إن شاء الله ،

و لكن معذرةً لدى سؤال بسيط خارج نهج اللى حضرتك إتكلمت فيه ، هل بلغة مثل PHP ممكن تصميم روبوت بحث !؟

و هل يمكن الإعتماد على لغة مثل روبى او بايثون فى مجال العمل كبرمجة أساسية فيما بعد ؟

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

و احتاج لغة برمجة مناسبة لمثل هذا الأمر فهل لغة برمجة مثل PHP تفى بالغرض ام احتاج للغات اكثر تعقيداً مثل روبى ، هل لغة PHP من الممكن ان تقوم بفهرسة بعض المواقع التى اختارها

و هل من الممكن دمج بها علم فهم اللغات الطبيعية

و لك كل الشكر و التقدير ،،

#11

أهلا بك " كاتب الموضوع "

فعلا فكرة رائعة ، و أتمنى أن توفق بها

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

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

أو

يجد الكلمة ثم و يجد مقارب لها ، و هو ما يسمى بالستاتسيكال انلايسس ( التحليل الإحصائي ) و هو أحدث ما وجد في هذا العلم حتى الآن ، حسب معرفتي.

التحليل الأحصائي يعتمد على الذكاء الإصطناعي ، يمكننك البحث عن الـ statiscal translate machine و عدة تطبيقات لها ، كي تقوم بدراستها ،

ثم تحدد اللغة التي سوف تقوم بكتاب البرنامج بها ، على حسب مهاراتك و ميولك .

، و لكم خالص الأمنيات بالتوفيق.

تم تعديل هذه المشاركة بواسطة جوليا في 16 مايو 2012 في 19:42

#12
El Sa7eR كتب:

شكراً لك لهذا الإيضاح و صراحةً أفادنى و أوضح لى كثير من الأشياء ، بالنسبة لفكرتى

سأحاول أن أذكرها لك بشكل مختصر ، و هى ببساطة إنشاء موقع للرد على سؤال ، و الإجابات سيتم الحصول عليها من خلال الإنترنت بشكل أوتوماتيك و لكن سيطبق خوارزمية لتفصيل البيانات الجيدة من السيئة

و كان فكرى إنها ستحتاج إلى ذكاء صناعى لمعالجة البيانات و تفريقها و فهمها ، ما رأيك ؟ّ! و ما هى الإحتياجات لتطبيق مثل هذه الفكرة ؟

نشكركم على الايضاح واللع الموفق للخير

ارت ويب ايجيبت

تصميم وتطوير واستضافة الانترنت اسعارمنافسى

تليفون : 00201128433120

#13

فكرة محرك البحث بسيطه ولو حبيت ولقينا فريق مهتم ممكن نتناقش (بتعمق) عن محركات البحث ،

ببساطه كل ماتحتاجه هو لغة بيرل Perl طبعا هي مش واجب لكن مفضله.

اهم خطوه هي ان تحدد الSeed Page ومنها تعمل crawling وتمشي وتمشي في الويب ا :blush:

#14

السلام عليكم ورحمة الله وبركاته

فكرة رائعة حقاً.. تمنيت لو بإمكاني الإفادة لكن خبرتي لا تزال ضحلة للأسف ! :sad:

يبدو مشروعاً ضخماً أن تبرمج محرك بحث بحاله!

موفقين إن شاء الله يا شباب لكل خير.. وإذا طبقتوا المشروع لا تبخلوا علينا بعرضه :lol:

تحياتي لكم جميعاً

#15

السلام عليكم ورحمة الله وبركاته.

Open source search engines every developer should know about.

((إِنَّ اللَّهَ وَمَلائِكَتَهُ يُصَلُّونَ عَلَى النَّبِيِّ يَا أَيُّهَا الَّذِينَ آمَنُوا صَلُّوا عَلَيْهِ وَسَلِّمُوا تَسْلِيمًا))

#16

لقد حاولنا انا وزملائى إنشاء محرك بحث بسيط بإستخدام لغة الفيجوال بيسك ولكنها لم تفدنا كثيراً ولذلك إستخدمنا لغة الphp كلغة رئيسية ولا أعتقد أنك تستطيع الإستغناء عنها فى مشروعك لانها توفر لك إنشاء الdatabase والتصميم معاً .

تم تعديل هذه المشاركة بواسطة pink ghost في 25 مايو 2012 في 21:58

#18

طيب انا بدي اعمل محرك بحث خاصة بالجامعة يعني يبحث عن اي معلومة تتعلق بالجامعة وسؤالي هنا كيف بقدر ابلش ؟؟وهل هذا سهل ام صعب ؟وهل يصلح كتطبيق للموبايل ؟؟

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