API - محرك بحث بسيط على الويب. الهدف من ذلك هو فهرسة قائمة لا حصر لها من عناوين URL (صفحات الويب) ، ومن ثم تكون قادرًا على البحث بسرعة عن عناوين URL ذات الصلة مقابل استعلام. يستخدم هذا المحرك قاعدة بيانات Elasticsearch.
تقوم عملية الفهرسة بعنوان URL الجديد الذي يزحف أولاً ، ثم يستخرج العنوان ومحتوى النص الرئيسي من الصفحة. بعد ذلك ، يتم حفظ وثيقة جديدة تمثل بيانات عنوان URL في Elasticsearch ، وتذهب للفهرسة.
عند البحث عن عناوين URL ذات الصلة ، سيقوم المحرك بمقارنة الاستعلام مع بيانات كل مستند (صفحة الويب) ، واسترداد قائمة عناوين URL التي تطابق الاستعلام ، مرتبة حسب الأهمية.
يمكن استخدام محرك البحث هذا مع واجهة المستخدم: https://github.com/anthonysigogne/web-search-engine-ui
تعمل واجهة برمجة التطبيقات هذه للحصول على قائمة محدودة باللغات ، انظر هنا للحصول على القائمة الكاملة: https://www.elastic.co/No/en/elasticsearch/reference/current/analysis-lang-analyzer.html.
يمكن العثور على عرض تجريبي هنا: http://searchengine.byprog.com/
تم فهرسة حوالي 500 من عناوين URL الفرنسية و 500 عناوين URL الإنجليزية لشبكة الأخبار http://www.france24.com/.
تتطلب هذه الأداة Python3+ و Elasticsearch5+ .
git clone https://github.com/AnthonySigogne/web-search-engine.git
cd web-search-engine
pip install -r requirements.txt
ثم ، قم بتشغيل الأداة:
FLASK_APP=index.py HOST=<ip> PORT=<port> USERNAME=<username> PASSWORD=<password> flask run
أين :
port ip +: طريق إلى Elasticsearchusername + password : بيانات الاعتماد للوصول لتشغيل في وضع التصحيح ، prepend FLASK_DEBUG=1 إلى الأمر:
FLASK_DEBUG=1 ... flask run
لتشغيل الأداة باستخدام Docker ، يمكنك استخدام صورة DockerHub الخاصة بي: https://hub.docker.com/r/anthonysigogne/web-search-engine/
docker run -p 5000:5000
-e "HOST=<ip>"
-e "PORT=<port>"
-e "USERNAME=<username>"
-e "PASSWORD=<password>"
anthonysigogne/web-search-engine
أين :
port ip +: طريق إلى Elasticsearchusername + password : بيانات الاعتماد للوصول إلى Elasticsearchأو ، قم ببناء صورة Docker:
git clone https://github.com/AnthonySigogne/web-search-engine.git
cd web-search-engine
docker build -t web-search-engine .
لسرد جميع خدمات API ، اكتب نقطة النهاية هذه في متصفح الويب الخاص بك: http: // localhost: 5000/
فهرس صفحة ويب من خلال عنوان URL الخاص به.
عنوان URL
/فِهرِس
طريقة
POST
شكل معاملات البيانات
مطلوب:
url=[string] ، عنوان URL للفهرس
استجابة النجاح
Successاستجابة الخطأ
عينة المكالمة (مع حليقة)
curl http://localhost:5000/index --data "language=en&url=https://www.byprog.com/en/"
استعلام محرك للعثور على قائمة عناوين URL ذات الصلة. إرجاع المطاردة الفرعية لعناوين URL التي تم تصنيفها حسب الأهمية ، ومجموع عناوين URL المطابقة ، في JSON.
عنوان URL
/يبحث
طريقة
POST
شكل معاملات البيانات
مطلوب:
query=[string] ، استعلام البحث
غير مطلوب:
start=[integer] ، بداية الزيارات (0 افتراضيًا)
hits=[integer] ، عدد الزيارات التي تم إرجاعها عن طريق الاستعلام (10 بشكل افتراضي)
highlight=[integer] ، إرجاع الأجزاء المميزة لكل عنوان URL (0 أو 1 ، 0 بشكل افتراضي)
استجابة النجاح
{
"total": 1,
"results": [
{
"title": "Anthony Sigogne / Freelance / Full-Stack Developer",
"description": "Full-Stack Developer specialized in new technologies and innovative IT solutions.",
"url": "https://www.byprog.com/en/"
}
]
}
استجابة الخطأ
عينة المكالمة (مع حليقة)
curl http://localhost:5000/search --data "query=freelance fullstack"
معهد ماساتشوستس للتكنولوجيا