ระบบค้นหาเครื่องมือค้นหาแบบเพียร์ทูเพียร์
โครงการนี้เป็นการดำเนินการเป็นห้องสมุดของโปรโตคอล Kamilata Kamilata เปิดใช้งานการค้นหาที่ไม่น่าเชื่อถือในเครือข่ายเปิด ไลบรารีนี้สามารถจัดการข้อมูลทุกประเภทและรวมเข้ากับแอปพลิเคชัน LIB2P ของคุณได้อย่างง่ายดาย
มีหลายกรณีที่เป็นไปได้:
อัลกอริทึมการจัดอันดับขึ้นอยู่กับคุณเนื่องจากไลบรารีนี้จะให้ผลการค้นหาที่ไม่ได้เรียงลำดับเท่านั้น จากข้อมูลเมตาที่คุณรวมไว้ในผลลัพธ์เหล่านั้นคุณสามารถจัดอันดับได้ตามที่คุณต้องการ
Kamilata เป็นระบบแรกในโลกที่เสนอคุณสมบัติที่อธิบายไว้ข้างต้นในขณะที่ยังสามารถปรับขนาดได้ อันที่จริงเครือข่ายสามารถรวมถึงไม่มีปัญหามากกว่าหลายร้อยล้านเอกสารและโหนดหลายแสนโหนด ไม่ทราบขีด จำกัด ที่เกิดขึ้นจริง
ห้องสมุดนี้เป็นพลังของเครื่องมือค้นหา IPFS Admarus
ทุกอย่างเริ่มต้นจากวิธีที่ไร้เดียงสาที่สุดที่ฉันได้ปรับให้เหมาะสมที่สุด ลองนึกภาพเครือข่ายของคนรอบข้างแต่ละเอกสารการจัดเก็บ (เอกสารเหล่านี้สามารถทำซ้ำได้ในหลาย ๆ เพื่อนหากพวกเขาได้รับความนิยม) เมื่อเพียร์ต้องการค้นหาเอกสารมันจะส่งแบบสอบถามไปยังเพื่อนทุกคนในเครือข่าย สิ่งนี้หยุดทำงานเมื่อมีเพื่อนมากเกินไปเนื่องจากเครือข่ายถูกน้ำท่วมด้วยการสืบค้น
ในการแก้ปัญหานี้ฉันได้เพิ่มอัลกอริทึมการกำหนดเส้นทางที่อนุญาตให้ผู้ค้นหาสามารถค้นหาเส้นทางเฉพาะกับเพื่อนที่ มี เอกสารที่ตรงกัน ขอบคุณสิ่งนี้การสืบค้นข้ามเพื่อนที่ไร้ประโยชน์ทั้งหมด ตอนนี้คุณสามารถดาวน์โหลดรายการเอกสารการจับคู่ด้วยความเร็วคงที่โดยไม่คำนึงถึงการสืบค้น ความเร็วในการค้นหาขึ้นอยู่กับขนาดของเครือข่าย ผลลัพธ์ใหม่จะได้รับทุก h hops โดยที่ h = ln(n)/ln(c) กับ n จำนวนของเพื่อนและ c จำนวนการเชื่อมต่อที่เพื่อนแต่ละคนมีต่อผู้อื่น นี่เป็นสิ่งที่ดีมากสำหรับ h beeing มากกว่า 3 เมื่อ c คือ 100 เครือข่ายต้องมีมากกว่าหนึ่งล้านคน ผลลัพธ์สามารถจัดอันดับได้อย่างอิสระตามข้อมูลเมตาที่พวกเขารวม
อัลกอริทึมการกำหนดเส้นทาง Kamilata ขึ้นอยู่กับตัวกรอง Bloom ที่ลดทอนลง ตัวกรอง Bloom เป็นโครงสร้างข้อมูลขนาดกะทัดรัดที่ใช้ในการตรวจสอบว่าองค์ประกอบมีอยู่ในชุดหรือไม่ ที่นี่เราตรวจสอบการมีอยู่ของคำในเอกสาร จากมุมมองของโหนดเครือข่าย Kamilata แบ่งออกเป็นกลุ่มโหนดเสมือนจริงที่มีขนาดแตกต่างกัน สิ่งนี้แบ่งคลังข้อมูลออกเป็นหลายชุดตั้งแต่เอกสารสองสามฉบับไปจนถึงเอกสารทั้งหมดของคลังข้อมูล แต่ละตัวมีตัวกรอง Bloom ที่สอดคล้องกันมันเป็นเรื่องง่ายที่จะค้นหาคำในเครือข่ายและรู้ว่าโหนดใดที่จะสอบถามสำหรับคำที่กำหนด