عامل العقدة البسيط الذي يزحف إلى خرائط الموقع من أجل الحفاظ على تحديث فهرس Algolia.
يستخدم محددات CSS بسيطة للعثور على محتوى النص الفعلي لفهرسته.
يستخدم هذا التطبيق مكتبة Algolia.
يجب تشغيل هذا البرنامج النصي عبر crontab حتى تتمكن من الزحف إلى موقع الويب بأكمله على فترات منتظمة.
<loc>
على الأقل، أي urlset/url/loc
.npm i algolia-webcrawler -g
git clone [email protected]:DeuxHuitHuit/algolia-webcrawler.git
git clone https://github.com/DeuxHuitHuit/algolia-webcrawler.git
algolia-webcrawler --config config.json
cd إلى جذر المشروع وتشغيل node app
.
يتم التكوين عبر ملف config.json.
يمكنك اختيار ملف config.json مخزّن في مكان آخر باستخدام علامة --config.
node app --config my-config.json
كحد أدنى، يمكنك تحرير config.json لتعيين قيم للخيارات التالية: "app"، و"cred"، و"indexname"، وكائن "sitemap" واحد على الأقل. إذا كانت لديك ملفات Sitemap متعددة، فيرجى إدراجها جميعًا: لن يتم الزحف إلى ملفات Sitemap الفرعية.
معظم الخيارات مطلوبة. لا يتم توفير أي افتراضات، ما لم ينص على خلاف ذلك.
اسم التطبيق الخاص بك.
كائن بيانات اعتماد Algolia. راجع "cred.appid" و"cred.apikey".
معرف تطبيق Algolia الخاص بك.
مفتاح Algolia API الذي تم إنشاؤه.
تأخير بسيط بين كل الطلبات المقدمة إلى الموقع بالمللي ثانية.
الحد الأقصى لعدد المللي ثانية التي يمكن أن يعيشها الإدخال دون تحديثه. بعد كل تشغيل، سيقوم التطبيق بالبحث عن الإدخالات القديمة وحذفها. إذا كنت لا ترغب في التخلص من الإدخالات القديمة، فاضبط هذه القيمة على 0.
سلسلة التصفية التي سيتم تطبيقها عند حذف الإدخالات القديمة. مفيد عندما تريد الاحتفاظ بالسجلات القديمة التي لن يتم تحديثها. سيتم حذف السجلات القديمة والمتطابقة مع عامل التصفية فقط.
الحد الأقصى لحجم السجل الذي سيتم إرساله إلى Algolia بالبايت. الرقم الافتراضي هو 10000 ولكن قد يختلف بناءً على الخطط المختلفة.
عندما يكون السجل كبيرًا جدًا (استنادًا إلى maxRecordSize)، سيقوم الزاحف بإزالة القيم من مفتاح النص. استخدم هذه السمة لتكوين المفاتيح التي يجب تقليمها عندما يكون السجل كبيرًا جدًا.
كائن يحتوي على قيم مختلفة مرتبطة بالفهرس الخاص بك.
اسم الفهرس الخاص بك.
كائن يعمل كوسيطة لطريقة Index#setSetting
الخاصة بـ Algolia.
يرجى قراءة وثائق Algolia حول هذا الموضوع. يمكن استخدام أي سمة صالحة موثقة لهذه الطريقة.
مصفوفة من السلاسل تحدد السمات القابلة للفهرسة، مما يعني أنه سيتم إجراء البحث عن النص الكامل مقابلها. للحصول على قائمة كاملة بالسمات المحتملة، راجع قسم الكائنات المخزنة.
مصفوفة من السلاسل تحدد السمات القابلة للتصفية، مما يعني أنه يمكنك استخدامها لاستبعاد بعض السجلات من الإرجاع. للحصول على قائمة كاملة بالسمات المحتملة، راجع قسم الكائنات المخزنة.
يجب أن تحتوي هذه المصفوفة على قائمة بكائنات خريطة الموقع.
خريطة الموقع عبارة عن كائن بسيط يحتوي على خاصيتين من خصائص السلسلة: url وlang. الخاصية "url" هي عنوان url الدقيق لخريطة الموقع هذه. يجب أن توضح الخاصية "lang" اللغة الرئيسية التي يستخدمها عنوان url الموجود في خريطة الموقع.
كائن يحتوي على خيارات http مختلفة.
سلسلة المصادقة، في username:password
. إذا لم تكن بحاجة إلى مصادقة، فلا تزال بحاجة إلى تحديد سلسلة فارغة.
كائن يحتوي على محددات CSS للعثور على المحتوى في صفحات html.
محدد CSS لعنوان الصفحة.
محدد CSS لوصف الصفحة.
محدد CSS لصورة الصفحة.
محدد CSS لعنوان الصفحة.
محدد CSS للخاصية "المفتاح". يمكنك إضافة مفاتيح مخصصة كما يحلو لك.
يمكن أيضًا تعريف المحددات باستخدام النموذج الطويل (أي ككائن)، مما يسمح بتحديد خصائص مخصصة عليها.
اسم السمات للبحث عن القيم. الافتراضي هو ["المحتوى"، "القيمة"].
محدد CSS الفعلي المراد استخدامه.
الحد الأقصى لعدد العقد للتحقق.
كائن يحتوي على محددات CSS للعثور على العناصر التي لا يجب فهرستها. تتم مطابقة محددات CSS هذه لكل عقدة ويتم فحصها مقابل جميع أصولها للتأكد من استبعاد غير العقدة الأصلية.
محدد CSS للعناصر المستبعدة لنص الصفحة.
محدد CSS للعناصر المستبعدة لخاصية "المفتاح". يجب أن يتطابق المفتاح مع المفتاح المستخدم في المحددات[المفتاح].
كائن يحتوي على سلسلة المنسق. تتم إزالة قيمها من النتيجة الأصلية التي تم الحصول عليها باستخدام محدد CSS المرتبط.
السلسلة المطلوب إزالتها من عنوان الصفحة. يمكن أيضًا أن تكون مجموعة من السلاسل.
السلسلة المطلوب إزالتها من المفتاح المحدد. يمكن أيضًا أن تكون مجموعة من السلاسل.
دالة التحليل المستخدمة لتنسيق القيمة. الأنواع المدعومة هي "عدد صحيح" و"عائم" و"منطقي" و"json".
القيمة الافتراضية المُدرجة للمفتاح المحدد. سيتم تعيينه إذا كانت القيمة خاطئة.
قائمة بملفات جافا سكريبت لتحميل تعليمات برمجية مخصصة قبل حفظ السجل. الشرط الوحيد هو تنفيذ الواجهة التالية، حيث record
هو الكائن المراد حفظه والبيانات هي html.
module . exports = ( record , data ) => {
record . value_from_plugin = 'Yay!' ;
} ;
يتم فحص جميع عناوين URL مقابل جميع العناصر الموجودة في القائمة السوداء. إذا كان عنوان URL الكامل أو مكون المسار الخاص به موجودًا في القائمة السوداء، فلن تتم فهرسته.
الكائن المخزن على خادم Algolia هو كما يلي
{
date : new Date ( ) ,
url : 'http://...' ,
objectID : shasum . digest ( 'base64' ) ,
lang : sitemap . lang ,
http : { } ,
title : '' ,
description : '' ,
image : '' ,
text : [ '...' ]
}
شيء واحد يجب ملاحظته هو أن النص عبارة عن مصفوفة، لأننا حاولنا الحفاظ على عقدة النص الأصلية -> علاقة القيمة الفعلية. Algolia التعامل مع هذا على ما يرام.
يمكن تعيين عنوان url واحد لنشر اختبار الاتصال مرة أخرى إلى خادم الويب بعد كل عنوان url محفوظ في Algolia. سيتلقى خادم الويب منشورًا يحتوي على هذه المعلومات:
result=[success|error]
action=[update|delete]
url=the url inserted
last-modified=[the http header value]
source=algolia-crawler
تتم الفهرسة تلقائيًا، عند كل تشغيل. لتعديل كيفية عمل الفهرسة، يرجى الاطلاع على خيار تكوين Index.settings.
معهد ماساتشوستس للتكنولوجيا
صُنع بحب في مونتريال بواسطة Deux Huit Huit
حقوق النشر (ج) 2014-2019