Vespa เทียบกับ ElasticSearch
(tech.okcupid.com)-
เหตุผลที่ OkCupid เลือก Vespa เป็นเสิร์ชเอนจินโอเพนซอร์ส
-
จำเป็นต้องเปลี่ยนคู่แนะนำเดตตามการจัดอันดับแบบเรียลไทม์ แต่ระบบจับคู่เดิมสะท้อนสถานะผู้ใช้ที่เปลี่ยนตลอดได้อย่างรวดเร็วได้ยาก
-
ElasticSearch ไม่รองรับ partial update แบบ in-memory
→ เอกสารส่วนใหญ่เป็นแบบคงที่ แต่ข้อมูลของผู้ใช้ (like, การเชื่อมต่อ/ข้ามผู้คน, การส่งข้อความ) เปลี่ยนแบบไดนามิกตลอดเวลา
- Vespa : เสิร์ชเอนจินโอเพนซอร์สสำหรับบิ๊กดาต้า (ปรับให้เหมาะกับงานเสิร์ฟข้อมูลมากกว่างานวิเคราะห์ข้อมูล)
→ รองรับ partial update แบบ in-memory โดยไม่ต้อง reindex เอกสารทั้งหมด (ต่อโหนดอัปเดตได้ 40~50K ครั้งต่อวินาที)
→ มีเฟรมเวิร์กการจัดอันดับที่ยืดหยุ่น จึงประมวลผลตอน query ได้
→ เชื่อมต่อกับโมเดลแมชชีนเลิร์นนิงอย่าง TensorFlow ได้โดยตรง
→ เมื่อเรียกใช้ผ่าน REST สามารถ query ด้วย YQL (Yahoo Query Language) ได้
→ ปรับแต่งลอจิกได้ด้วย Java component
→ ในด้านการขยายระบบ ไม่จำเป็นต้องกังวลเรื่อง shard ทุกครั้งที่เพิ่ม/ลบโหนด ข้อมูลจะกู้คืนอัตโนมัติและกระจายใหม่จาก replica
- Vespa เหมาะกับภายในของ OkCupid มากกว่า
→ OkCupid จับคู่ผู้คนโดยรวมข้อมูลผู้ใช้ที่หลากหลายเข้าด้วยกัน
→ มีตัวกรองและเกณฑ์การเรียงลำดับอย่างละมากกว่า 100 รายการ และยังเพิ่มต่อเนื่อง จึงเหมาะกับการรองรับเวิร์กโฟลว์ลักษณะนี้
→ การเขียนข้อมูลและ query ก็คล้ายกับระบบจับคู่เดิม
→ เฟรมเวิร์กการจัดอันดับยืดหยุ่นและเข้าใจง่ายกว่ามาก
→ เมื่อเทียบกับโครงสร้าง query แปลกๆ ของ ElasticSearch แล้ว ความสามารถในการแสดงออกของ YQL เหนือกว่า
→ ความสามารถในการกระจายข้อมูลอัตโนมัติเหมาะกับทีมขนาดเล็ก
2 ความคิดเห็น
บทความแนะนำเป็นภาษาเกาหลีเกี่ยวกับประวัติและคุณค่าของ Vespa
โอเพนซอร์ส Yahoo Vespa https://web.archive.org/web/20210922122357/…
( ณ ปี 2023 บล็อกต้นฉบับหายไปแล้ว จึงเปลี่ยนเป็นลิงก์ Wayback Machine )
"Vespa เป็นชื่อแบรนด์สกู๊ตเตอร์ด้วย แต่ก็เป็นตัวย่อของ Vertical Search Plaform เช่นกัน"
"ในบรรดาเทคโนโลยีแกนหลักที่ Yahoo มีอยู่ ซึ่งดูเหมือนเป็นสิ่งที่พวกเขาไม่มีวันเปิดเผยออกมาแน่ ๆ Vespa ก็มักถูกพูดถึงว่าเป็นหนึ่งในห้าอันดับแรกเสมอ"
"Vespa คือชุดคอมโพเนนต์ของแพลตฟอร์มประมวลผลคอนเทนต์แบบบูรณาการที่มีเสิร์ชเอนจินเป็นศูนย์กลาง พูดง่าย ๆ ก็มองว่าเป็นเสิร์ชเอนจินได้ แต่เมื่อเทียบกับเสิร์ชเอนจินทั่วไปอย่าง Solr หรือ Elastic แล้ว มันมีคอมโพเนนต์ประกอบรอบข้างมากกว่ามาก"
บทความค่อนข้างยาว แต่ช่วงท้ายมีการแสดงทั้งโครงสร้างระบบของ OkCupid ที่นำ Vespa ไปใช้จริง ไปจนถึงคำค้นหา (YQL) ดังนั้นแนะนำให้อ่านต้นฉบับประกอบ
แม้ในช่วงท้ายบทความก็พูดถึงไว้ว่า ElasticSearch ถูกใช้งานอย่างแพร่หลายกว่ามาก และข้อเสียของ Vespa คือชุมชนผู้ใช้ยังไม่ใหญ่นัก
แต่จากที่เห็นตรงนี้ สำหรับงานค้นหาที่ต้องเปลี่ยนแปลงอย่างต่อเนื่อง Vespa ก็ดูน่าจะเป็นทางเลือกที่ยอดเยี่ยมได้เช่นกัน
แม้จะยกตัวอย่างการจับคู่เดต แต่การค้นหาในอีคอมเมิร์ซทุกวันนี้ก็คงต้องเปลี่ยนแบบเรียลไทม์เช่นกัน จึงจะให้ผลลัพธ์ที่ดีได้