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

25.03.2019

إيفان ماكسيموف

قدرات محرك البحث DataparkSearch

كيفية تنظيم البحث عن المعلومات على خادم الملفات ليس فقط من خلال اسم ونوع المستند، ولكن أيضًا من خلال محتواه؟ هل من الممكن إنشاء أداة مناسبة يمكن الوصول إليها وشفافة للمستخدمين؟

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

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

الآن سننظر في أحد الخيارات لتنظيم البحث عن المستندات على خادم الملفات، والذي تم تنفيذه لمهمة محددة.

الشروط الأولية

يوجد خادم ملفات يعمل بنظام التشغيل Linux. ل مشاركةالملفات، يتم تثبيت حزم samba وpro-ftp الشهيرة. تستخدم على القرص نظام الملفات reiserfs، باعتبارها الأكثر إنتاجية للعمل مع عدد كبير من الملفات الصغيرة (المستندات، حوالي 3 آلاف، تنسيقات مختلفة: txt، html، doc، xls، rtf). لقد تم فرز البيانات، ولكن حجمها يتزايد كل يوم؛ وحذف المعلومات القديمة لا يحل المشكلة. كيفية تنظيم البحث حسب الأسماء وأنواع المستندات وكذلك حسب المحتوى؟ كيفية جعلها متاحة للمستخدمين على الشبكة المحلية؟

لحل هذه المشكلات نحتاج إلى محرك بحث، خادم قاعدة بيانات (MySQL، firebirg، ...)، خادم الويب أباتشيوحول جيجابايت مساحة القرصلتشغيل المجمع.

ما هو محرك البحث الذي يجب أن تختاره؟

توجد محركات بحث محلية مثل Google Desktop Search أو Ask Jeeves Desktop Search. ربما لتنظيم بحث في شركة صغيرة أو عليها محطة العملمستخدم يعمل بنظام التشغيل Windows، يمكن أن تكون هذه المحركات مفيدة، ولكن ليس في في هذه الحالة. يعد البحث عن "الوحوش" مثل Yandex مكلفًا للغاية، ولكن إذا لزم الأمر مساعدة الجودةالمطورين، فإن الشركات الكبرى قد ترغب في النظر في تأجيرها. هناك العديد من المشاريع لعائلة * لا شىء. هذه هي المحركات:

  • DataparkSearch
  • مؤشر الكلمات
  • ASPseek
  • بيغل
  • منوغوسيرتش

يتم وضع المحركات المدرجة كمحركات بحث موزعة بحرية للعمل على الشبكات المحلية و/أو العالمية. أود أن أشير إلى أن العديد من المشاريع ليست متعددة المنصات ولا تعمل ضمنها أنظمة التشغيل مايكروسوفت. لأنظمة ويندوز هناك حلول الخادممثل: MnogoSearch و"Snoop".

لذا، دعونا نلقي نظرة سريعة على محركات البحث الخاصة بمنصة *nix:

Beagle هو خليفة محرك SUSE Linux Htdig. أحدث التوزيعكان SUSE، الذي تضمن محرك Htdig، هو رقم 9 في الإصدارات اللاحقة، واستبدله Novell بـ Beagle. أنهى Htdig تطويره في عام 2004، وهو الأخير النسخة المتاحة- 3.2.0ب6 بتاريخ 31 مايو 2004. يتم وضع المحرك الجديد في SUSE كمحرك بحث محلي، ولكن يمكن استخدامه أيضًا في بيئة الشركة.

يعد MnogoSearch (المعروف سابقًا باسم UdmSearch) محركًا معروفًا وواسع الانتشار إلى حد ما. توجد إصدارات لكل من Windows (إصدار مجاني لمدة 30 يومًا) ومنصات *nix (ترخيص GNU). من الممكن العمل مع جميع الإصدارات الشائعة تقريبًا من SQL DBMS لكلا النظامين الأساسيين. لسوء الحظ، هناك الكثير من الشكاوى حول هذا المحرك، لذلك لم أختره.

يعد Wordindex محركًا قيد التطوير (في وقت كتابة هذا التقرير، كان أحدث إصدار متوفر هو 0.5 بتاريخ 31 أغسطس 2000). يعمل بالتزامن ماي إس كيو إل نظم إدارة قواعد البياناتوخادم الويب أباتشي. يتم تقديم مشروع عملي فقط على موقع المطورين.

ASPseek هو محرك بحث كان منتشرًا على نطاق واسع في الماضي، ولكن في عام 2002 توقف هذا المحرك عن التطوير (أحدث إصدار متاح من محرك البحث هذا هو 1.2.10 بتاريخ 22 يوليو 2002).

DataparkSearch هو نسخة من محرك البحث MnogoSearch. يسمح لك بالبحث حسب أسماء الملفات ومحتواها. معالجة ملفات txt ومستندات HTML وعلامات mp3 مدمجة؛ ويلزم وجود وحدات إضافية لمعالجة محتوى الأنواع الأخرى من المستندات. من الممكن البحث عن المعلومات على القرص الصلب المحلي وعلى الشبكة المحلية/العالمية (http، https، ftp، nntp والأخبار).

يعمل محرك البحث مع أنظمة SQL DBMS الأكثر شيوعًا، مثل MySQL وfirebird وPostgreSQL وغيرها. وفقًا للمطورين، يعمل DataparkSearch بثبات على أنظمة تشغيل *nix المختلفة: FreeBSD، وSolaris، وRed Hat، وSUSE Linux وغيرها. بالمقارنة مع MnogoSearch، تم إصلاح بعض الأخطاء في المحرك وتغييرها الجانب الأفضلبعض الوظائف. يوفر موقع المطورين روابط لإصدارات العمل من المحرك على الإنترنت. الميزة الكبيرة هي التوثيق عالي الجودة باللغة الروسية.

لذلك، بعد مقارنة جميع الإيجابيات والسلبيات، تم اختيار المحرك لتنفيذ البحث على خادم الملفات محرك البحث DataparkSearch.

تثبيت

للعمل سنحتاج إلى: خادم الويب Apache، خادم قاعدة البيانات بيانات ماي إس كيو إلو رموز المصدر DataparkSearch. قم بتثبيت خادم Apache وقاعدة بيانات MySQL (مع كافة المكتبات الضرورية). إذا تم تثبيت نظام إدارة قواعد البيانات (DBMS) آخر على الخادم الخاص بك، فيمكنك استخدامه أيضًا (راجع وثائق المحرك). بعد ذلك، دعونا نفرغ أرشيفات DataparkSearch ونبدأ في تجميع مجمعنا.

لنقم بتشغيل البرنامج النصي install.pl والإجابة على الأسئلة الضرورية: تحديد مجلد تثبيت المحرك وقواعد البيانات وغيرها المتعلقة بمعلمات تشغيل المحرك. يوصى بترك الإعدادات الافتراضية. يمكن للمستخدمين ذوي الخبرة، بعد قراءة الوثائق الموجودة في مجلد المستندات، تكوين المحرك يدويًا (أمر التكوين). إذا لم يتمكن البرنامج النصي من العثور على mysql أثناء التثبيت، فقد لا يتم تثبيت مكتبات المطورين (libmysql14 Devil). سنقوم الآن بتجميع DataparkSearch وتثبيته باستخدام أوامر make وmake install.

الحد الأدنى من التكوين

لنقم بإنشاء قاعدة بيانات:

sh$ mysqladmin إنشاء بحث

باستخدام الأمر mysqlshow، سوف نقوم بعرض جميع الجداول في قاعدة البيانات. أود أن أشير على الفور إلى أنه أكثر ملاءمة للعمل مع MySQL باستخدام وحدة تحكم الويب phpmyadmin، ولكن يمكنك القيام بمجموعة قياسية من الأدوات المساعدة. تحتاج إلى إنشاء مستخدم جديد في MySQL:

sh#mysql --user=root mysql

mysql> منح كافة الامتيازات على *.* إلى user@localhost

تم تحديدها بواسطة "كلمة المرور" مع خيار المنحة؛

مخرج

لنعد تشغيل MySQL.

لنفترض أن اسم المستخدم هو الباحث وكلمة المرور هي qwerty.

الآن قم بإنشاء ملف Indexer.conf في المجلد /etc/ الخاص بالمحرك، على سبيل المثال من هذا الملف(لبعض المهام) يمكن العثور عليها في المجلد /doc/samples لمصادر DataparkSearch. مثال مع الحد الأدنى من الإعداداتيظهر في الشكل. 1.

دعونا نلقي نظرة فاحصة على الملف. كما هو مذكور في التعليق، يحدد أمر DBAddr المسار إلى خادم SQL (في حالتنا، MySQL)، وكيفية تخزين البيانات، والمعلمات الأخرى (إذا لزم الأمر). هناك العديد من أوضاع التخزين: إذا لم تحدد dpmode، فستكون القيمة الافتراضية مفردة - الأبطأ. يوصى باستخدام وضع ذاكرة التخزين المؤقت، ولكن إذا كانت لديك مشكلات فيه، فيمكنك استخدام الوضع المتعدد الأقل كفاءة، ولكن الأسهل في التكوين. وصف تفصيليجميع معلمات dbmode موجودة في الوثائق.

متاجر دوستور نسخ مضغوطةالوثائق المفهرسة. الأقسام عبارة عن وحدة توفر خيارات فهرسة مرنة. لنفترض أنه يمكنك إنشاء تقييد للعلامة أو إعداد فهرسة ليس فقط محتويات الملفات، ولكن أيضًا عنوان URL (المضيف، المسار، الاسم). Langmap - خرائط لغة خاصة للتعرف على الترميزات واللغات، وتكون فعالة إذا كان حجم المستندات أكبر من 500 بايت.

ملف التكوين الثاني المطلوب هو ملف نتائج البحث search.conf. يوصى بأخذ قالب جاهز (ملف /etc/search.htm-dist) وتحريره ليناسب احتياجاتك. تجدر الإشارة إلى أن المعلمات الرئيسية المحددة في ملف Indexer.conf يجب أن تتطابق مع المعلمات الموجودة في search.htm، وإلا فستكون هناك أخطاء عند تشغيل المحرك. يتكون Search.htm من عدة كتل: الأولى - المتغيرات - تحتوي على بيانات لتشغيل المحرك (search.cgi script)، وجميع الكتل الأخرى ضرورية لإنشاء صفحة نتائج بحث html. يظهر في الشكل مثال على كتلة المتغيرات في search.conf. 2.

دعونا نلقي نظرة فاحصة على search.htm. كما ترون، فإن معلمات DBAddr وLocalCharset هي نفس المعلمات المتطابقة في ملف Indexer.conf. إذا كان عميل الويب الخاص بك يدعم تنسيق xml، فيمكنك تعيين معلمة ResultContentType text/xml. فيما يلي كتل HTML اللازمة لتصميم صفحة النتائج، ولا يتم عرضها هنا نظرًا لحجمها الكبير. يوصى باستخدام قالب جاهز موجود في الملف /etc/search.htm-dist. تصف الوثائق المرفقة بشكل كامل تنسيق كتل HTML (التصميم)؛ ويمكن لأي شخص تخصيصه حسب رغبته.

يمكنك الآن تشغيل ملف المفهرس من مجلد sbin الخاص بمحرك DataparkSearch باستخدام المعلمة -Ecreate. إذا تم كل شيء بشكل صحيح، فسيتم إنشاء جداول SQL اللازمة في قاعدة البيانات. إذا ظهرت أخطاء، يجب عليك التحقق من الاسم مستخدم الخليةوكلمة المرور في ملف Indexer.conf، وهذا هو الخطأ الأكثر شيوعًا.

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

لننسخ الملف bin/search.cgi من دليل DataparkSearch إلى مجلد cgi-bin لخادم الويب الخاص بنا ونقوم بتحرير ملف Index.shtml لخادم الويب Apache (الموجود في مجلد html)، وإضافة رمز نموذج البحث إليه :

يمكنك الآن الوصول إلى مورد المضيف المحلي باستخدام أي متصفح يمكن الوصول إليه. في النموذج الذي يظهر، أدخل كلمة البحث، على سبيل المثال "المعالج" (انظر الشكل 3). نتيجة لذلك، يجب أن نتلقى صفحة تحتوي على نتائج البحث، إذا كانت هذه المستندات موجودة بالطبع (انظر الشكل 4). إذا ظهر مستند به أخطاء بدلاً من صفحة بها نتائج بحث، فيجب عليك التحقق من تشغيل البرنامج النصي. بالذهاب إلى دليل cgi-bin لخادم الويب، قم بتنفيذ البرنامج النصي "seach.cgi test >> test.htm". إذا تم تشكيل صفحة النتائج بشكل صحيح، فيجب عليك التحقق من تكوين خادم Apache: هل المسار إلى البرنامج النصي cgi محدد بشكل صحيح، هل البرنامج النصي للاختبار test.cgi يعمل في دليل خادم الويب.

إذا كان test.htm فارغًا أو يحتوي أيضًا على أخطاء، فمن المستحسن التحقق مما إذا كانت البيانات موجودة في قاعدة البيانات، ويتم ذلك باستخدام الأمر "indexer -S". ربما يجب عليك إعادة فهرسة الخادم باستخدام الأمر “indexer – v 5” – أعلى مستوى ممكنإصدار معلومات التصحيح. من خلال تعيين أمر LogLevel 5 في ملف search.htm وعرض سجلات خادم الويب بعناية، يمكنك معرفة كيفية معالجة البيانات في خادم SQL.

إضافة وحدات إضافية (parsets)

بشكل افتراضي، يعمل المحرك فقط مع ملفات HTMLوtxt، ولكن من الممكن تثبيت وحدات إضافية (parsets) تعمل على تحويل أنواع أخرى من المستندات إلى html أو txt (نص عادي). من الممكن العمل مع xls (Excel)، doc (Word)، rtf (Word)، ppt ( عرض تقديمي)، وملفات pdf (Acrobat Reader) وحتى ملفات rpm (RedHar Package Manager)، وسيعرض الأخير البيانات التعريفية فقط. في حالتنا، سنحتاج إلى معالجة تنسيقات المكتب. هناك العديد من Parsets لـ xls وdoc: يقوم catdoc بتحويل المستندات إلى تنسيق txt، ويقوم XLHTML وvwHtml بتحويل الملفات إلى تنسيق HTML.

أوصي باستخدام حزمة catdoc، نظرًا لأن سرعة التحويل إلى تنسيق txt أسرع بكثير من التحويل إلى تنسيق HTML، ويتجمد برنامج XLHTML أحيانًا عند تحويل المستندات. على الرغم من أن المطورين توقعوا هذه المشكلة وأوصوا بتعيين المعلمة ParserTimeOut 300 في ملف Indexer.conf (يُشار إلى الرقم بالثواني)، لتجنب تجميد Parset، فإن وقت الفهرسة سيزيد أكثر.

سنحتاج أيضًا إلى بارسيت آخر - unrtf - للعمل مع ملفات rtf؛ فهو يحول المستندات إلى كود html أو تنسيق نص/عادي حسب اختيار المستخدم.

تحميل وتثبيت الحزم المطلوبة، لتوصيل parset تحتاج إلى إضافة الأسطر التالية إلى ملف Indexer.conf:

ل تنسيق XLS(تم تضمين برنامج xls2csv في حزمة catdoc):

تطبيق Mime/vnd.ms-excel text/عادي "xls2csv $1"

AddType application/vnd.ms-excel *.xls *.XLS

ل وثائق الوثيقةالمعلمات تبدو مثل هذا:

تطبيق Mime/نص msword/عادي "catdoc $1"

تطبيق AddType/vnd.ms-excel *.doc *.DOC

معالجة مستندات RTF:

AddType text/rtf* *.rtf *.RTF

تطبيق AddType/rtf *.rtf *.RTF

Mime text/rtf* text/html "/usr/local/bin/unrtf --text $1"

تطبيق مايم/rtf text/html "/usr/local/bin/unrtf --text $1"

تجدر الإشارة إلى أن بعض تطبيقات Windows تقوم أحيانًا بإنشاء ملفات بنفس الامتداد بأحرف كبيرة، لذلك دعونا نضيف نفس الامتدادات، ولكن بأسماء مختلفة، إلى قائمة AddType.

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

لنفترض، إذا كنت بحاجة إلى فهرسة ملفات rpm أو iso والحصول على البيانات الوصفية منها، فستحتاج أولاً إلى العثور على البرنامج المناسب (parset) وإضافة المعلمات الضرورية إلى ملف Index.conf. يمكن العثور على قائمة أنواع المستندات المدعومة، على سبيل المثال، في ملف mime.types الخاص بخادم Apache. حلول جاهزةيمكنك العثور على تحويل الملفات أو الحصول على البيانات الوصفية منها ضمن إعدادات حزمة Midnight Commander، في ملف mc.ext.

وضع تخزين ذاكرة التخزين المؤقت

هناك عدة طرق لتسريع المحرك، إحداها هي استخدام طريقة تخزين بيانات ذاكرة التخزين المؤقت. للعمل في هذا الوضع، نحتاج إلى أدوات مساعدة للتخزين المؤقت والتشغيل، الموجودة في دليل sbin بالنسبة للمحرك. إذا قمت بالفعل بإنشاء قاعدة بيانات SQL في وضع مختلف (dpmode)، فلا تنس حذفها أولاً وبعد ذلك فقط قم بتغيير وضع التخزين. لنقم بمسح قاعدة البيانات باستخدام الأمرين: "indexer -C" (تنظيف جداول SQL) و"indexer Edrop" (حذف الجداول). بعد ذلك، قم بإنشاء ملف Cached.conf من ملف قالب Cached.conf-dist الموجود في المجلد etc الخاص بمحركنا. دعونا لا ننسى تغيير المعلمات للوصول إلى قاعدة بيانات SQL:

يمكنك الآن تحرير ملفات Index.conf وsearch.conf عن طريق تغيير المعلمات الموجودة فيها:

Indexer.conf

DBAddr mysql://searcher:qwerty@localhost/search/?dbmode=cache&cached=localhost:7000

search.htm

DBAddr mysql://searcher:qwerty/search/?dbmode=cache

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

مخبأة & 2> مخبأة

سيبدأ البرنامج الخفي ويكتب معلومات تصحيح الأخطاء في ملف Cached.out. المنفذ الافتراضي للتخزين المؤقت هو 7000، ولكن يمكن تغييره إذا لزم الأمر (في Cached.conf).

لنقم بإعادة إنشاء جداول SQL لوضع تخزين البيانات الجديد باستخدام أمر "indexer -Ecreate" وفهرسة الخادم - المفهرس. بعد الانتهاء قم بتشغيل الأمر:

تشغيل الخائن -k

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

وظائف اضافيه

في التكوين أعلاه، تم استخدام الحد الأدنى من الإعدادات بمساعدة الإعدادات الإضافية، يمكنك تحقيق قدر أكبر من الوظائف والمرونة للمحرك، كل هذا يتوقف على المهام. لزيادة سرعة محرك البحث، يمكنك استخدام وحدة mod_dpsearch لخادم Apache. تنشأ الحاجة إلى هذه الوحدة في حالة فهرسة مئات الآلاف من المستندات ومن الضروري زيادة سرعة المحرك إلى الحد الأقصى. يمكنك أيضًا العثور في الوثائق على طرق أخرى لتسريع المحرك، على سبيل المثال: تحسين SQL DB أو استخدام الذاكرة الافتراضية كذاكرة تخزين مؤقت.

في كثير من الأحيان تكون هناك حاجة للبحث عن الأشكال النحوية للكلمات. لنفترض أننا بحاجة إلى جميع أشكال كلمة "معالج" (معالجات، معالجات، ...)، ولهذا يمكننا تكوين وحدات ispell أو aspell. مزيد من التفاصيل عنها مكتوبة في الوثائق.

يتمتع DataparkSearch بالقدرة على فهرسة مقاطع الشبكة؛ ويتم ذلك عن طريق المعلمة: الشبكة الفرعية 192.168.0.0/24 في ملف Indexer.conf.

من الممكن أيضًا تعطيل الفهرسة أنواع معينةالملفات أو مجلدات محددةعلى الخوادم: Disallow *.avi أو Disallow */cgi-bin/*.

في القوالب ملفات التكوينيمكنك العثور على أوصاف (مع أمثلة) للآخرين معلمات مفيدةوالتي قد تكون ضرورية لتنفيذ مهمة محددة.

الاستنتاجات

محرك البحث DataparkSearch – أداة قويةللعمل مع موارد الويب الموجودة على الشبكة المحلية وعلى الشبكة العالمية. المشروع يتطور باستمرار ويتم الانتهاء منه، حتى وقت كتابة المقال على أبعد تقدير نسخة مستقرةالمحرك 4.38 (بتاريخ 13/03/2006) واللقطة 4.39 (بتاريخ 19/04/2006). يجب أن أشير إلى أن التحديثات إلى الإصدار الأحدث تحدث كل يوم تقريبًا.

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

طلب

وظيفة

تم تثبيت الخادم على جهاز: AMD Athlon 2500 Barton، و512 ميجابايت DDR 3200 (مزدوج)، وHDD WD 200 جيجابايت SATA (ذاكرة تخزين مؤقت 8 ميجابايت، 7200 دورة في الدقيقة). تكوين المحرك: يتم فهرسة محرك DataparkSearch (الإصدار 4.38)، وMySQL DBMS (الإصدار 4.1.11)، وخادم الويب Apache (الإصدار 1.3.33)، وdoc، وxls، وrtf (التحويل إلى نص/عادي)، وhtml، وtxt. يتم استخدام وضع تخزين البيانات المتعددة. معالجة ما يقرب من ألفي ملف موجود على هذا الجهاز (حجم القرص ~ 1 جيجابايت) وفهرسة محتواها تستغرق 40 دقيقة، وحجم قاعدة البيانات بعد العمل هو حوالي 1 جيجابايت. يجب أن أشير إلى أن سرعة المحرك مع الموارد غير المحلية ستعتمد على سرعة القناة. كما أن سرعة الفهرسة تعتمد على البارسيتات المستخدمة. يؤدي استخدام وضع تخزين ذاكرة التخزين المؤقت إلى تحسين الأداء بحوالي 15-20%. يتم استخدام متصفحات الويب كبرنامج عميل؛ وتم اختبار العمل على: Firefox وOpera وKonqueror وMicrosoft Internet Explorer وحتى Lynx - ولم تنشأ أي مشاكل. يمكن أتمتة العمل الكامل لجزء الخادم من المحرك باستخدام برنامج cron الشهير، مع وضع المعلمات اللازمة لفهرسة البيانات فيه.

  • بوستجريس كيو ال - http://www.postgresql.org.
  • أباتشي - http://www.apache.org.
  • كاتدوك - http://www.45.free.net.
  • XLHTML – .
  • أتش تي أم أل – .
  • unrtf – ftp://ftp.gnu.org/pub/gnu/unrtf.
  • في تواصل مع

    المشاكل الفنية للخلق محرك بحث الموقع

      يعد إنشاء محرك بحث متكامل لموقع ويب أمرًا متفوقًا من حيث التعقيد والتكلفة والوقت لإنشاء موقع ويب كبير.

      قد يبدو هذا البيان مفاجئا. في العديد من المواقع يمكنك أن تجدنماذج البحث في الموقع . قد يكون لديك انطباع بأنه بما أن نموذج البحث في الموقع جزء لا يتجزأ من الموقع، فيجب أن يكون أقل تكلفة من الموقع.

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

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

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

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

    أمثلة توضح التعقيد الفني لإنشاء محرك بحث فعال.

    مثال

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

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

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

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

    مثال 2

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

      قد يعني الزائر "تصميم الويب"، ولكن يطلب كلمات أخرى: استوديو الويب، استوديو الويب، استوديو الويب، استوديو الويب، استوديو الويب، استوديو الويب، استوديو الويب، استوديو الويب، إتقان الويب، استوديو تصميم الويب، استوديو التصميم، إلخ. .د. إذا لم تكن الكلمات المحددة موجودة في الموقع، فسيقوم محرك البحث بالإبلاغ عن عدم العثور على نتائج.

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

    مثال 3

      نفس الموقع ونفس محرك البحث.

      بدلاً من كلمة “تصميم الويب” قد يدخل الزائر بالخطأ: تصميم ويب، تصميم ويب، تصميم ويب، تصميم ويب، تصميم ويب، تصميم ويب، تصميم ويب، تصميم ويب، إلخ. لكن محرك البحث قد يبلغ عن عدم العثور على نتائج.

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

    في ملاحظة:

      يمكن لكل مستخدم إنترنت ذي خبرة تقديم العديد من الأمثلة على التشغيل غير الصحيح لمحركات البحث.

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

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

      بطبيعة الحال، عند إنشاء معظم مواقع الويب التجارية، بميزانية تصل إلى 40.000 إلى 50.000 دولار، فإن الضبط الدقيق لمحركات البحث يدويًا ليس مربحًا.

      زيادة تعقيد خوارزمية محرك البحث، من ناحية، يمكن أن تزيد من الملاءمة، ولكن، من ناحية أخرى، يمكن أن تؤدي إلى أخطاء جديدة.

    ملخص

      يعد إنشاء محرك بحث متكامل لموقع ويب أمرًا متفوقًا من حيث التعقيد والتكلفة والوقت لإنشاء موقع ويب كبير.

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

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

    تصنيف

    حسب منطقة البحث (مشروط)

    محلي

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

    عالمي

    مصمم للبحث عن المعلومات عبر الإنترنت بالكامل أو جزء كبير منه. ممثلو محركات البحث هذه هم محركات البحث Google و Yandex وما إلى ذلك. تبحث محركات البحث عن المعلومات أنواع مختلفةعلى سبيل المثال، النصوص ومقاطع الفيديو والصور والأشياء الجغرافية والبيانات الشخصية وما إلى ذلك. في هذه الحالة، يمكن أن تكون الملفات التي يمكن لمحرك البحث التعامل معها بتنسيق نصي (على سبيل المثال، .html، .htm، .txt، . doc و.rtf...) والرسومات (.gif و.png و.svg...) أو الوسائط المتعددة (الفيديو والصوت). حتى الآن، الأكثر شيوعًا هو البحث من خلال المستندات النصية.

    استعلام بحث

    المعلومات الأولية للبحث هي استعلام البحث.

    المهام

    تؤدي محركات البحث عدة وظائف:

    البحث عن الروابط

    ابحث عن روابط للصفحات ومستندات الموقع الأخرى.

    آلي

    الوضع اليدوي

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

    فهرسة وثائق الموقع

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

    ابحث في قاعدة بيانات الوثائق المفهرسة

    قد تتكون من عدة مراحل

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

    ترتيب المستندات حسب صلتها باستعلامات البحث

    تجميع المستندات

    ملحوظات

    أنظر أيضا


    مؤسسة ويكيميديا. 2010.

    تعرف على معنى "محرك البحث" في القواميس الأخرى:

      محرك البحث- (محرك البحث): خادم ويب يقوم بفهرسة صفحات الويب على الخوادم المتاحة (على سبيل المثال، ياندكس)... المصدر: موارد الإنترنت. متطلبات إمكانية الوصول للأشخاص ذوي الإعاقة البصرية. GOST R 52872 2007 (تمت الموافقة عليه بأمر من Rostekhregulirovaniya بتاريخ ... ... المصطلحات الرسمية

      محرك البحث- خادم الويب الذي يقوم بفهرسة صفحات الويب على الخوادم المتاحة (على سبيل المثال، Yandex). [GOST R 52872 2007] المواضيع تكنولوجيا المعلوماتبشكل عام محرك البحث EN ... دليل المترجم الفني

      على شبكة الإنترنت، موقع ويب خاص يمكن للمستخدم، بناء على طلب معين، الحصول على روابط لمواقع تطابق هذا الطلب. يتكون نظام البحث من ثلاثة مكونات: 1 روبوت بحث؛ 2 فهارس النظام؛ و3 برامج...... القاموس المالي

      يوجد على الإنترنت محرك بحث يقوم بما يلي: إرسال طلب بحث إلى عدة أشخاص محركات البحث; ويقوم بإنشاء ملخص (في صفحة واحدة) من الردود الواردة. باللغة الإنجليزية: ميتا محرك البحثالمرادفات: Meta Caterpillar المرادفات الإنجليزية: Metacrawler... ... القاموس المالي

      هذه المقالة تحتاج إلى إعادة كتابتها بالكامل. قد تكون هناك توضيحات على صفحة الحديث. برنامج محرك البحث والأجهزة المعقدة مع واجهة الويب التي توفر القدرة على ... ويكيبيديا

      نظام البحث- – (محرك بحث إنجليزي، مرادفات: محرك البحث، محرك البحث، محرك البحث) – أداة للبحث عن المعلومات على شبكة الإنترنت. كقاعدة عامة، يتكون عمل محرك البحث من مرحلتين. برنامج خاص ( روبوت البحث، رشاش، وكيل، ... ... القاموس الموسوعي للوسائط - محرك البحث هو موقع ويب يوفر إمكانية البحث عن المعلومات على الإنترنت. تبحث معظم محركات البحث عن المعلومات على مواقع الويب العالمية، ولكن هناك أيضًا أنظمة يمكنها البحث عن الملفات عليها خوادم بروتوكول نقل الملفات، البضائع في... ... ويكيبيديا

    كتب

    • فيما يتعلق بمسألة فعالية البحث عن تفاصيل على الإنترنت، I. A. Semenov. وفقًا لأبحاث بيركلي، قدرت كمية المعلومات الموجودة على الإنترنت اعتبارًا من عام 2003 بنحو 258.85 تيرابايت، وهذه مجرد بيانات متاحة للعامة فقط. ووفقا لإحصائيات الإنترنت العالمية، فإن النمو... الكتاب الاليكتروني

    منذ البداية الكاميرات الرقميةبالتأكيد ليس لدينا نقص في الصور. في الواقع، ياهو! وتشير تقديراتنا إلى أننا سنتلقى في عام 2014 880 مليون صورة رقمية.

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

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

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

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

    لذا، لتجنب ذلك، يمكنك تجربة خدمة البحث صور مجانية.

    محركات بحث الصور المجانية

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

    من الصعب جدًا مقارنة جودة محركات البحث السبعة التي سأناقشها في هذه المقالة. أولاً، أردت تشغيل نفس الاستعلامات في كل منها ومقارنة النتائج.

    ومع ذلك، بعد تجربة بعض المصطلحات الشائعة جدًا (على وجه التحديد "أجهزة الكمبيوتر") وحصلت على آلاف النتائج في بعض الأنظمة، بينما في أنظمة أخرى أقل شهرة، لم أتلق شيئًا في نفس الوقت ( ربما لأنني استخدمت الكلمات الرئيسية الخاطئة)، قررت أن مثل هذا الاختبار يمكن أن يعطي نتائج خاطئة.

    علاوة على ذلك، تقوم محركات البحث هذه بفهرسة صور جديدة كل يوم، لذا حتى لو لم تكن هناك اليوم صورة واحدة في بعض الأنظمة للاستعلام "يوم مشمس"، فقد يحدث غدًا أن يضيف النظام العشرات من هذه الصور.

    لذا، لن أقوم بمقارنة جودة البحث لهذه الخدمات السبع - سأقدم فقط انطباعاتي عن العمل معها، بالإضافة إلى بعض الحقائق العامة، مثل عدد الصور التي تتضمنها في عمليات البحث أو عدد المواقع التي تتضمنها. فِهرِس.

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

    من المحتمل أن الصور التي تم ترخيصها على أنها مجانية قد غيرت ترخيصها لاحقًا لأن مؤلفها غير رأيه. لذلك، تحقق دائمًا من الترخيص قبل استخدام الصورة.

    1. صور جوجل

    بالنسبة للكثيرين منا، تعد صور Google هي الأولى ( وغالباً الوحيد) خيار البحث عن الصور الخالية من حقوق الملكية والتي تمت الموافقة عليها أيضًا للاستخدام التجاري. للبحث عن صور مجانية من خلال صور Google، أدخل الكلمات الأساسية في حقل البحث واضغط على Enter، ثم حدد علامة تبويب الصور (1):

    صور Google

    ثم انقر على الزر ادوات البحث" (2) لفتح قائمة خيارات البحث واختيار " حقوق الاستخدام"(3). من القائمة المنسدلة، حدد الترخيص الذي يناسبك.

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

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

    2. بحث CC

    بحث CC، ( اختصار لبحث المشاع الإبداعي)، هو محرك بحث رئيسي آخر للصور المرخصة بموجب تراخيص المشاع الإبداعي.

    على الرغم من أنه، كما يقولون بأنفسهم، ليس محرك بحث من الناحية الفنية، إلا أنهم يقدمون بوضوح نتائج بحث على العديد من المواقع الأخرى، مثل Europeans وFlickr وGoogle Images وWikimedia Commons وFotopedia وOpen Clipart Gallery وPixabay:


    المشكلة هي أن CC Search لا يبحث في كل هذه المواقع مرة واحدة. وبدلاً من ذلك، يمكنك إدخال مصطلح البحث وتحديد الموقع الذي تريد البحث فيه. إنها ليست عملية مريحة للغاية، ولكنها لا تزال أسرع من البحث المباشر في جميع هذه المواقع.

    بالإضافة إلى الصور، يقدم CC Search نتائج للموسيقى والفيديو والوسائط الأخرى.

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

    إذا أعجبك CC Search وتخطط لاستخدامه بانتظام، فإنهم يقدمون وظيفة إضافية للمتصفح ( بواسطة على الأقل، لمتصفح فايرفوكس)، مما يساعد على تسريع الوصول إلى الموقع.

    ضع في اعتبارك أن المشاع الإبداعي لا يعني " مجانا للجميع" يجب أن تفهم أن استخدام هذا الترخيص يخضع لجميع الروابط والاعتمادات والشروط والأحكام الأخرى.

    3. دبوس الصورة

    ربما يكون Flickr أكبر مستودع للصور المجانية على الإنترنت، لذلك ليس من المستغرب أن تركز العديد من خدمات البحث عن الصور عليه حصريًا. Photo Pin هو واحد منهم. عند فتح الموقع وإدخال استعلام، ترى شيئًا مثل هذا:


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

    بالطبع، لا يوجد سبب يمنعك من البحث عن محتوى Creative Commons مباشرة على Flickr عبر البحث المتقدم. ومع ذلك، يوفر لك Photo Pin فائدتين.

    أولاً، يكون الأمر أسهل إذا ركزت فقط على المحتوى المرخص. ثانيا، يوفر Photo Pin تحميل سهلبالحجم المناسب، ويوفر أيضًا طريقة سهلة لنسخ روابط الترخيص ولصقها.

    خدمة مريحة حقا.

    4.PicFindr

    على عكس العديد من الخدمات الأخرى التي تطلق على نفسها اسم "محركات البحث"، حتى لو كانت تبحث فقط في Flickr، فإن PicFindr أكثر طموحًا. فهو يبحث في أكثر من عشرة مواقع صور مجانية عبر مجموعة واسعة من التراخيص ( المشاع الإبداعي، وغنو وغيرها).

    تتضمن قائمة المواقع أقسامًا فرعية مجانية لبعض مواقع الصور، مثل DreamsTime، مما يجعل محرك البحث هذا مفيدًا بشكل خاص. عند إدخال مصطلح البحث، سترى شيئًا مثل هذا:


    بالإضافة إلى ذلك، يحتوي PicFindr على بعض خيارات البحث الإضافية التي تجعله أكثر فائدة:


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

    5. فيزل

    إذا كنت مستعدًا لتجربة محرك بحث آخر يبحث في كل من Flickr وWikimedia Commons، فاطلع على Veezzle. عند زيارتك لموقع ما وإدخال مصطلح بحث، يمكنك جعله أكثر تحديدًا، كما هو موضح في لقطة الشاشة التالية:


    عند النقر فوق زر البحث، يتم عرض النتائج من Flickr وWikimedia Commons بشكل منفصل. يمكنك اختيار الطريقة التي تريد بها عرض النتائج - حسب مدى الصلة بالموضوع أو الشعبية أو تاريخ التحميل.

    على الرغم من أن Veezzle هو محرك بحث آخر يعمل مع Flickr، فلا تستبعد هذا الخيار قبل تجربته عمليًا. موقع Flickr ضخم ومتنوع لدرجة أن محركات البحث المختلفة قد تعطيك نتائج مختلفة. لذلك قد تتمكن من العثور على الصور المناسبة لك باستخدام Veezzle.

    6. كل صورة مخزنة

    مع وجود ما يقرب من 23 مليون صورة مجانية للاختيار من بينها، فإن كل صورة مخزنة هي حقًا مكان رائع للبحث. تقوم هذه الخدمة بالبحث في عدة مواقع. بالإضافة إلى Flickr وWikimedia Commons، والتي يتم تغطيتها في محركات البحث الأخرى، تبحث كل صورة مخزنة في أماكن أخرى: MorgueFile، وSXU، وNASA، وPhoti:


    تتيح لك الخيارات المتقدمة تحسين بحثك. إنها تسمح لك باختيار نوع الترخيص والمصدر وما سيتم عرضه ( إذن، ترخيص، مصدر). بالنسبة لي شخصيًا، يعد Every Stock Photo هو محرك البحث المفضل الثاني للصور بعد Google Images. ولكن نظرًا لأن كل شخص لديه أذواق مختلفة، فإنه ليس بالضرورة مناسبًا للآخرين:


    7. ها

    من الممكن أن تكون محركات البحث المدرجة بالفعل أكثر من كافية بالنسبة لك، ولكن هنا هو الأخير. بالمقارنة مع بعض محركات البحث الأخرى، يبدو أن موقع Behold هو الابن الفقير، لأنه يعرض فقط النتائج من Flickr. ومع ذلك، وعلى عكس محركات البحث نفسها، فإن Behold سريع جدًا جدًا، وهي ميزة كبيرة.

    عندما يواجه عامل Netpikov مهمة تتطلب وقتًا (على سبيل المثال، إنشاء مشروع Death Star أو بناء جهاز مدمج للاندماج البارد)، فإنه يفكر أولاً في كيفية أتمتة هذا العمل. نقوم بجمع نتائج هذه التأملات على صفحة خاصة على موقعنا. سنتحدث اليوم عن كيفية ولادة خدمة مفيدة جديدة في أعماق وكالة Netpeak.

    منذ وقت طويل، في مجرة ​​بعيدة جدًا، قررنا تغيير محرك البحث الخاص بموقع العميل لزيادة ظهور الصفحات في البحث العضوي.

    مهمة

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

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

    أمثلة على المجموعات:

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

    هدف

    إنشاء آلية عمل واضحة لوضع عمليات إعادة التوجيه من الصفحات الخاصة بالعبارات التي بها أخطاء إلى صفحة في موقع العميل تحتوي على العبارة الصحيحة.

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

    كيف ولدت طريقة جديدة

    إن الحل الأبسط الذي يتبادر إلى ذهنك على الفور هو وضع الاستفسارات في Google، وسوف يقوم بتصحيحها لنا بصراحة. لكن تنظيم مثل هذا الاختراق مهمة مكلفة إلى حد ما. لذلك، سلكت أنا ورفاقي طريقًا مختلفًا. قرر عالم الرياضيات التحليلي لدينا استخدام النهج اللغوي (فجأة!) وبناء نموذج لغوي.

    ماذا يعني ذلك؟ نحدد احتمالية مواجهة كلمة ما في اللغة ولكل كلمة نجد احتمالات السماح لها بالاحتواء أخطاء مختلفة. سيكون كل شيء على ما يرام، والنظرية هنا جميلة، ولكن لجمع مثل هذه الإحصائيات، يجب أن يكون لديك مجموعة نصية ضخمة مرمّزة لكل لغة (مرة أخرى، محركات البحث هي الأقرب إلى هذا). بطبيعة الحال، نشأت أسئلة حول كيفية القيام بذلك ومن سيقوم بتنفيذ كل هذا في التعليمات البرمجية. لم يفعل أحد شيئًا كهذا من قبل (إذا كنت تعرف حالة، قم بنشر الرابط في التعليقات)، لذلك تم تطوير المنهجية من الصفر. كانت هناك العديد من الأفكار ولم يكن من الواضح مسبقًا أي منها أفضل. لذلك، توقعنا أن يتم التطوير بشكل دوري - إعداد الفكرة، والتنفيذ، والاختبار، وتقييم الجودة، ومن ثم تحديد ما إذا كنا سنستمر في تحسين الفكرة أم لا.

    يمكن تقسيم تنفيذ التكنولوجيا إلى ثلاث مراحل. اقرأ المزيد عن كل واحد منهم.

    المرحلة رقم 1. تشكيل المشكلة. أشعل النار الأول

    انتباه!بعد هذا السطر سيكون هناك العديد من المصطلحات التي حاولنا شرحها بأبسط لغة ممكنة.

    نظرًا لعدم توفر معلومات إضافية (القواميس والترددات والسجلات)، كانت هناك محاولات لحل المشكلة باستخدام الموارد المتوفرة لدينا. لقد جربنا طرق تجميع مختلفة. الفكرة الرئيسية هي أن الكلمات من نفس المجموعة لا ينبغي أن تختلف كثيرا.

    تجمع- إجراء يقوم بجمع بيانات تحتوي على معلومات حول عينة من الكائنات ثم ترتيب الكائنات في مجموعات متجانسة نسبيًا.

    مسافة ليفنشتاينيعرض الحد الأدنى لعدد التغييرات (عمليات الحذف والإدراج والاستبدال) في الصف A التي يجب إجراؤها للحصول على الصف B.

    • استبدال الرمز: sh[e]res — sh[i]res, sh[o]res;
    • إدراج رمز: sheres - s[p]heres;
    • إزالة: غول [د] [و] - جولف، ذهب.

    في كل من الأمثلة، المسافة بين الكلمة التي بها خطأ إملائي والصيغة الصحيحة هي تصحيح واحد.

    معامل Jaccard على ثنائية وtrigramsيساعد على معرفة عدد المجموعات الشائعة من المقاطع المكونة من حرفين أو ثلاثة أحرف الموجودة في السلاسل A وB.

    مثال: لنفكر في الخطين A = لوح التزلج وB = الحدود. الصيغة العامة لمعامل البيغرامات هي:

    J = (عدد الصور الكبيرة المتطابقة لـ A وB) / (إجمالي عدد الصور الكبيرة في A وB)

    دعونا نقسم الخطوط إلى Biggrams:

    Biggrams لـ A = ( sn، no، ow، wb، bo+، oa، ar، rd+ ) - 8 قطع؛ Biggrams لـ B = ( bo+، أو، rd+، de، er ) - 5 قطع؛ هناك نوعان من الصور الكبيرة المتطابقة المميزة بعلامات الجمع - bo وrd.

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

    مثال على المزيد من الكلمات المشابهة:

    A = البيسبول و B = baaeball ( ba+، as، se، eb+، ba+، al+، ll+ ) ( ba+، aa، ae، eb+، ba+، al+، ll+ ) J = 5 / (7 + 7 - 5) = 0.56

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

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

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

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

    المرحلة رقم 2. تبسيط. أمل جديد

    لقد قمنا بإعادة تصميم الخوارزمية، وجعلها أقرب إلى المصححات النحوية الميكانيكية التقليدية. ولحسن الحظ، هناك ما يكفي منهم. تم اختيار مكتبة Python Enchant كقاعدة. تحتوي هذه المكتبة على قواميس لأي لغة في العالم تقريبًا، وهي سهلة الاستخدام للغاية، ويمكنك الحصول على تلميحات حول ما يجب تصحيحه. خلال المرحلة السابقة تعلمنا الكثير عن أنواع الاستعلامات وما هي اللغات التي يمكن أن تكون بها هذه الاستعلامات.

    من الوصول المفتوحتم جمع القواميس التالية:

    • الإنجليزية (المملكة المتحدة)؛
    • الإنجليزية (الولايات المتحدة الأمريكية)؛
    • ألمانية؛
    • فرنسي؛
    • إيطالي؛
    • الأسبانية؛
    • الروسية؛
    • الأوكرانية.
    1. فإذا صح (موجود في أحد القواميس) تركناه كما هو؛
    2. إذا كان غير صحيح، نحصل على قائمة من القرائن ونأخذ أول واحد يصادفنا؛
    3. نجمع كل الكلمات معًا في عبارة واحدة. إذا لم نواجه مثل هذه العبارة من قبل، فإننا نقوم بإنشاء مجموعة لها. الشكل المصحح للعبارة يصبح "مركزها". إذا كان لدينا، فهذا يعني أن هذه العبارة لديها بالفعل مجموعتها الخاصة، ونضيف نموذجًا خاطئًا جديدًا هناك.

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

    المرحلة رقم 3. المكملات الغذائية والقوة تستيقظ

    تم حل مشكلة الترجمة الصوتية بكل بساطة وتقليدية. أولاً، قمنا بعمل قاموس للمراسلات بين الحروف السيريلية واللاتينية.

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

    عند تنفيذ الخوارزمية، اتضح أن البحث عن أدلة في قاموس Enchant المعزز يتطلب أحيانًا أكثر من 3 ثوانٍ لكل كلمة. لتسريع هذه العملية، تم استخدام أحد تطبيقات Levenshtein Automaton.

    باختصار فكرة الآلة هي أننا نبني مخطط انتقالي باستخدام القاموس الموجود. في الوقت نفسه، نعرف مقدما عدد التصحيحات في الكلمات التي ستكون مقبولة بالنسبة لنا. كل انتقال يعني أننا نقوم بنوع من التحويل على الحروف الموجودة في الكلمة - نترك الحرف أو نطبق أحد أنواع التصحيح - الحذف أو الاستبدال أو الإدراج. وكل قمة هي أحد الخيارات لتغيير الكلمة.

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

    تظهر الصورة آلة لكلمة الغذاء مع كل الخطأين المحتملين. السهم لأعلى يعني إدخال حرف في الموقف الحالى. السهم الذي يحتوي على علامة النجمة قطريًا يعني الاستبدال، والسهم الذي يحمل علامة epsilon يعني الحذف، والسهم الأفقي يعني أن الحرف لم يتغير. دعونا نحصل على كلمة fxood. وسوف يتوافق مع المسار الموجود في الجهاز 00-10-11-21-31-41 - وهو ما يعادل إدخال الحرف x بعد f في كلمة food.

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

    ما هي النتيجة؟

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

    استغرق إنشاء الكود واختباره ما مجموعه 40 ساعة من العمل من قبل محلل رياضي. الخلاصة: إذا كنت بحاجة يومًا ما إلى معالجة حوالي مليوني طلب، فلا تيأس. يمكن أتمتة مثل هذه المهام. ومن الواضح أن تحقيق الدقة بنسبة 100% سيكون أمرًا صعبًا للغاية، لكن من الممكن معالجة 95% على الأقل من المعلومات بشكل صحيح.