12 คะแนน โดย xguru 2020-10-29 | 2 ความคิดเห็น | แชร์ทาง WhatsApp
  • เหตุผลที่ 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 ความคิดเห็น

 
xguru 2020-11-01

บทความแนะนำเป็นภาษาเกาหลีเกี่ยวกับประวัติและคุณค่าของ Vespa

โอเพนซอร์ส Yahoo Vespa https://web.archive.org/web/20210922122357/…
( ณ ปี 2023 บล็อกต้นฉบับหายไปแล้ว จึงเปลี่ยนเป็นลิงก์ Wayback Machine )

"Vespa เป็นชื่อแบรนด์สกู๊ตเตอร์ด้วย แต่ก็เป็นตัวย่อของ Vertical Search Plaform เช่นกัน"
"ในบรรดาเทคโนโลยีแกนหลักที่ Yahoo มีอยู่ ซึ่งดูเหมือนเป็นสิ่งที่พวกเขาไม่มีวันเปิดเผยออกมาแน่ ๆ Vespa ก็มักถูกพูดถึงว่าเป็นหนึ่งในห้าอันดับแรกเสมอ"
"Vespa คือชุดคอมโพเนนต์ของแพลตฟอร์มประมวลผลคอนเทนต์แบบบูรณาการที่มีเสิร์ชเอนจินเป็นศูนย์กลาง พูดง่าย ๆ ก็มองว่าเป็นเสิร์ชเอนจินได้ แต่เมื่อเทียบกับเสิร์ชเอนจินทั่วไปอย่าง Solr หรือ Elastic แล้ว มันมีคอมโพเนนต์ประกอบรอบข้างมากกว่ามาก"

 
xguru 2020-10-29

บทความค่อนข้างยาว แต่ช่วงท้ายมีการแสดงทั้งโครงสร้างระบบของ OkCupid ที่นำ Vespa ไปใช้จริง ไปจนถึงคำค้นหา (YQL) ดังนั้นแนะนำให้อ่านต้นฉบับประกอบ

แม้ในช่วงท้ายบทความก็พูดถึงไว้ว่า ElasticSearch ถูกใช้งานอย่างแพร่หลายกว่ามาก และข้อเสียของ Vespa คือชุมชนผู้ใช้ยังไม่ใหญ่นัก

แต่จากที่เห็นตรงนี้ สำหรับงานค้นหาที่ต้องเปลี่ยนแปลงอย่างต่อเนื่อง Vespa ก็ดูน่าจะเป็นทางเลือกที่ยอดเยี่ยมได้เช่นกัน

แม้จะยกตัวอย่างการจับคู่เดต แต่การค้นหาในอีคอมเมิร์ซทุกวันนี้ก็คงต้องเปลี่ยนแบบเรียลไทม์เช่นกัน จึงจะให้ผลลัพธ์ที่ดีได้