ผู้ปฏิบัติงานโหนดแบบธรรมดาที่รวบรวมข้อมูลแผนผังไซต์เพื่อให้ดัชนี 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' อย่างน้อยหนึ่งรายการ หากคุณมีแผนผังไซต์หลายรายการ โปรดระบุทั้งหมด: แผนผังไซต์ย่อยจะไม่ถูกรวบรวมข้อมูล
จำเป็นต้องมีตัวเลือกส่วนใหญ่ ไม่มีการระบุค่าเริ่มต้น เว้นแต่จะระบุไว้เป็นอย่างอื่น
ชื่อแอปของคุณ
วัตถุข้อมูลรับรอง Algolia ดู 'cred.appid' และ 'cred.apikey'
รหัสแอป Algolia ของคุณ
คีย์ Algolia API ที่คุณสร้างขึ้น
ความล่าช้าอย่างง่ายระหว่างแต่ละคำขอที่ทำกับเว็บไซต์ในหน่วยมิลลิวินาที
จำนวนมิลลิวินาทีสูงสุดที่รายการสามารถคงอยู่ได้โดยไม่ต้องอัปเดต หลังจากการรันแต่ละครั้ง แอปจะค้นหารายการเก่าและลบออก หากคุณไม่ต้องการลบรายการเก่า ให้ตั้งค่านี้เป็น 0
สตริงตัวกรองที่จะใช้เมื่อลบรายการเก่า มีประโยชน์เมื่อคุณต้องการเก็บบันทึกเก่าที่จะไม่ได้รับการอัปเดต เฉพาะบันทึกที่เก่าและตรงกับตัวกรองเท่านั้นที่จะถูกลบ
ขนาดสูงสุดเป็นไบต์ของบันทึกที่จะส่งไปยัง Algolia ค่าเริ่มต้นคือ 10,000 แต่อาจแตกต่างกันไปตามแผนที่ต่างกัน
เมื่อบันทึกมีขนาดใหญ่เกินไป (ขึ้นอยู่กับ maxRecordSize) โปรแกรมรวบรวมข้อมูลจะลบค่าออกจากคีย์ข้อความ ใช้คุณลักษณะนี้เพื่อกำหนดค่าว่าควรตัดคีย์ใดเมื่อบันทึกมีขนาดใหญ่เกินไป
วัตถุที่มีค่าต่างๆ ที่เกี่ยวข้องกับดัชนีของคุณ
ชื่อดัชนีของคุณ
ออบเจ็กต์ที่จะทำหน้าที่เป็นอาร์กิวเมนต์ของเมธอด Index#setSetting
ของ Algolia
โปรดอ่านเอกสารของ Algolia ในหัวข้อนั้น คุณสามารถใช้แอตทริบิวต์ที่ถูกต้องใดๆ ที่ได้รับการบันทึกไว้สำหรับวิธีนี้ได้
อาร์เรย์ของสตริงที่กำหนดแอตทริบิวต์ที่สามารถจัดทำดัชนีได้ ซึ่งหมายความว่าจะดำเนินการค้นหาข้อความแบบเต็มกับแอตทริบิวต์เหล่านั้น สำหรับรายการคุณลักษณะที่เป็นไปได้ทั้งหมด โปรดดูส่วน Stored Object
อาร์เรย์ของสตริงที่กำหนดแอตทริบิวต์ที่สามารถกรองได้ ซึ่งหมายความว่าคุณสามารถใช้เพื่อยกเว้นบางระเบียนไม่ให้ส่งคืนได้ สำหรับรายการคุณลักษณะที่เป็นไปได้ทั้งหมด โปรดดูส่วน Stored Object
อาร์เรย์นี้ควรมีรายการออบเจ็กต์แผนผังเว็บไซต์
แผนผังไซต์เป็นวัตถุที่เรียบง่ายมากที่มีคุณสมบัติสตริงสองประการ: url และ lang คุณสมบัติ 'url' คือ URL ที่ตรงกันทุกประการสำหรับแผนผังไซต์นี้ คุณสมบัติ 'lang' ควรชัดเจนถึงภาษาหลักที่ใช้โดย url ที่พบในแผนผังเว็บไซต์
ออบเจ็กต์ที่มีตัวเลือก http ที่แตกต่างกัน
สตริงการรับรองความถูกต้องในรูป username:password
ของโหนด หากคุณไม่ต้องการการรับรองความถูกต้อง คุณยังคงต้องระบุสตริงว่าง
วัตถุที่มีตัวเลือก CSS เพื่อค้นหาเนื้อหาในหน้า html
ตัวเลือก CSS สำหรับชื่อเรื่องของหน้า
ตัวเลือก CSS สำหรับคำอธิบายของเพจ
ตัวเลือก CSS สำหรับรูปภาพของหน้า
ตัวเลือก CSS สำหรับชื่อเรื่องของหน้า
ตัวเลือก CSS สำหรับคุณสมบัติ "คีย์" คุณสามารถเพิ่มคีย์ที่กำหนดเองได้ตามที่คุณต้องการ
ตัวเลือกยังสามารถกำหนดได้โดยใช้รูปแบบยาว (เช่น เป็นวัตถุ) ซึ่งอนุญาตให้ระบุคุณสมบัติที่กำหนดเองได้
ชื่อของแอตทริบิวต์ที่จะค้นหาค่า ค่าเริ่มต้นคือ ['เนื้อหา', 'ค่า']
ตัวเลือก CSS จริงที่จะใช้
จำนวนโหนดสูงสุดที่จะตรวจสอบ
ออบเจ็กต์ที่มีตัวเลือก CSS เพื่อค้นหาองค์ประกอบที่ต้องไม่ถูกจัดทำดัชนี ตัวเลือก CSS เหล่านั้นจะถูกจับคู่สำหรับแต่ละโหนด และจะตรวจสอบกับพาเรนต์ทั้งหมดเพื่อให้แน่ใจว่าไม่ได้ยกเว้นพาเรนต์ของโหนดนั้น
ตัวเลือก CSS ขององค์ประกอบที่ยกเว้นสำหรับข้อความของหน้า
ตัวเลือก CSS ขององค์ประกอบที่ยกเว้นสำหรับคุณสมบัติ "คีย์" คีย์จะต้องตรงกับคีย์ที่ใช้ในตัวเลือก [คีย์]
วัตถุที่มีสตริงตัวจัดรูปแบบ ค่าของพวกเขาจะถูกลบออกจากผลลัพธ์ดั้งเดิมที่ได้รับจากตัวเลือก CSS ที่เกี่ยวข้อง
สตริงที่จะลบออกจากชื่อเรื่องของเพจ อาจเป็นอาร์เรย์ของสตริงก็ได้
สตริงที่จะลบออกจากคีย์ที่ระบุ อาจเป็นอาร์เรย์ของสตริงก็ได้
ฟังก์ชันแยกวิเคราะห์ที่ใช้ในการจัดรูปแบบค่า ประเภทที่รองรับ ได้แก่ "integer", "float", "boolean" และ "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 : [ '...' ]
}
สิ่งหนึ่งที่ควรสังเกตคือข้อความนั้นเป็นอาร์เรย์ เนื่องจากเราพยายามรักษาโหนดข้อความดั้งเดิม -> ความสัมพันธ์ของค่าจริง อัลโกเลียจัดการเรื่องนี้ได้ดี
สามารถตั้งค่า URL หนึ่งรายการให้โพสต์ Ping กลับไปยังเว็บเซิร์ฟเวอร์หลังจากทุก 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
ลิขสิทธิ์ (c) 2014-2019