Search และ Index: ทำไมมีข้อมูลแต่หาไม่เจอ
เข้าใจ “Search และ Index: ทำไมมีข้อมูลแต่หาไม่เจอ” ผ่านงานธุรกิจไทยและผลกระทบต่อความเร็ว ความถูกต้อง และความเป็นธรรม
เป้าหมาย: เลือกโครงสร้างและตั้งคำถามเรื่อง scale ได้โดยไม่ต้องเป็นโปรแกรมเมอร์ · ใช้เวลาประมาณ 15 นาที
Question → Structure → Operation → Trade-off
เลือกโครงสร้างจากคำถามและการเปลี่ยนแปลง ไม่ใช่จากชื่อที่คุ้น
Question
ต้องค้น เรียง เชื่อม คิว หรือเดินตามลำดับอะไร
Structure
เลือก representation และ identifier
Operation
ระบุ read/write/update/delete และความถี่
Trade-off
วัดเวลา พื้นที่ freshness fairness และ failure
แนวคิดที่ใช้คุยกับทีม
search
อธิบาย search ด้วยข้อมูล การทำงาน และผลเมื่อข้อมูลโต
วาดตัวอย่างข้อมูลเล็กก่อนเลือก implementation
index
อธิบาย index ด้วยข้อมูล การทำงาน และผลเมื่อข้อมูลโต
index แลกพื้นที่และงานอัปเดตกับการค้นเร็วขึ้น ต้องเลือก field, tokenization, filter และ freshness ให้ตรงคำถาม
filter
อธิบาย filter ด้วยข้อมูล การทำงาน และผลเมื่อข้อมูลโต
index แลกพื้นที่และงานอัปเดตกับการค้นเร็วขึ้น ต้องเลือก field, tokenization, filter และ freshness ให้ตรงคำถาม
freshness
อธิบาย freshness ด้วยข้อมูล การทำงาน และผลเมื่อข้อมูลโต
index แลกพื้นที่และงานอัปเดตกับการค้นเร็วขึ้น ต้องเลือก field, tokenization, filter และ freshness ให้ตรงคำถาม
แบบจำลองที่ทำให้ระบบผิด
ไม่มี stable key
ข้อมูลซ้ำหรืออัปเดตผิดคน
กำหนด identity/matching rule
priority ไม่มีเหตุผล
ไม่ยุติธรรมและตรวจไม่ได้
ประกาศ criteria/tie-break
ทดสอบแต่ข้อมูลน้อย
latency/cost ระเบิดเมื่อ scale
load test และ complexity review
ออกแบบโครงสร้างจากงาน
RAG ค้นคำไทยที่สะกดหลายแบบและได้ SOP เก่า
กำหนด entity/key, structure, operations, edge cases, scale และ metric
ดูคำตอบตัวอย่าง
ระบุ source of truth และ stable key เลือก list/map/queue/tree/graph/index ตามคำถาม เขียน operations และ tie-break ตรวจ duplicate/cycle/stale index วัด latency, memory, fairness และ cost ที่ปริมาณปัจจุบันกับอนาคต พร้อม fallback เมื่อข้อมูลผิด
- entity/key
- structure
- operations
- edge cases
- scale
- metric/fallback
บันทึกช่วยจำ
- โครงสร้างเดียวอาจมี implementation หลายแบบ ให้ทีมเทคนิควัดกับ workload จริง
- การ ranking คนหรือสิทธิ์ต้องตรวจ bias และผลกระทบ
สรุปบทเรียนนี้
- เริ่มจากคำถาม
- มี key และ operation ชัด
- วัด trade-off เมื่อ scale