บทที่ 13 · Search Autocomplete

ออกแบบ Search Autocomplete

Autocomplete หรือ Typeahead ให้ข้อเสนอแนะแบบ Real-time ขณะผู้ใช้พิมพ์ใน Search Box ระบบต้องส่งมอบ Top-k ข้อเสนอที่เกี่ยวข้องและนิยมตามข้อมูล Historical Query

บทนำ

Autocomplete หรือ Typeahead ให้ข้อเสนอแนะแบบ Real-time ขณะผู้ใช้พิมพ์ใน Search Box

Key Features

ข้อกำหนด

High-Level Design

Services หลัก

  1. Data Gathering Service: รวบรวม User Queries และ Aggregate สำหรับ Frequency Analysis
  2. Query Service: ให้ Top-k ข้อเสนอแนะตาม Input ของผู้ใช้

Trie Data Structure

Trie เป็นโครงสร้างข้อมูลแบบ Tree ใช้จัดเก็บและดึง Query Strings อย่างมีประสิทธิภาพ

Key Features

ขั้นตอนการได้ Top-k Queries

  1. หา Prefix
  2. Traverse Subtree จาก Prefix Node เพื่อดึง Valid Children ทั้งหมด
  3. เรียง Children และดึง Top-k

Optimizations

เนื้อหานี้อ้างอิงจาก ByteByteGo - System Design Interview - An Insider's Guide