# บทเรียน 04 — ระบบค้นหา 20 สถานที่ ชื่อไทย–อังกฤษ พร้อมตัวกรอง

งานที่สองจาก prompt เดียวกับ [บท 03](03-contact-form.md): **ระบบ Searching สำหรับสถานที่ท่องเที่ยวใกล้ภูเก็ต** ความน่าสนใจคือ agent ไม่ได้หยิบสถานที่มา 5 ที่แล้วเรียบร้อย — แต่ค้นคว้าและรวบรวมข้อมูล **20 สถานที่** พร้อมรองรับการค้นหาทั้งชื่อไทยและอังกฤษ และกรองด้วยจังหวัดกับประเภท

เป้าหมายของบทนี้: เข้าใจว่าระบบค้นหาแบบ “ข้อมูลเยอะแต่โครงสร้างชัด” เกิดจากการจัดข้อมูลอย่างไร และจะตรวจมันอย่างไรให้เชื่อได้

## Prompt ที่ใช้ (ส่วนค้นหา)

> ให้ค้นหาสถานที่ท่องเที่ยวทั่วใกล้ภูเก็ต แล้วก็ทำระบบ Searching ให้ด้วย. เมื่อเสร็จแล้วให้อัปเดตไซต์เดิม.

(ยกมาจาก prompt เต็มในบท 03 — agent แยกทำเป็นงานย่อยของตัวเอง)

## ผลลัพธ์

![ภาพ capture ของสรุปงานค้นหา: 20 สถานที่ ชื่อไทย–อังกฤษ กรองจังหวัดและประเภท](/images/step5-contact-search-result2.webp)

agent สรุปผลงานส่วนค้นหาว่า: **ค้นหา 20 สถานที่ด้วยชื่อไทย–อังกฤษ พร้อมกรองจังหวัดและประเภท** — ทั้งหมดอยู่ในหน้าเดิมของเว็บ ไม่ต้องไปหน้าใหม่

![หน้าค้นหาในสถานะเริ่มต้น มีช่องค้นหา ตัวกรองจังหวัดและประเภท และตัวนับผลลัพธ์](/images/site-search-results.webp)

หน้าค้นหาประกอบด้วย: ช่องค้นหาด้วยชื่อสถานที่,  dropdown **จังหวัด** (ทุกจังหวัด / ภูเก็ต / พังงา / กระบี่ / ระนอง),  dropdown **ประเภทสถานที่** (หาด ธรรมชาติ วัฒนธรรม ตลาดและเมือง ฯลฯ) และตัวนับผลลัพธ์แบบ “พบ 20 สถานที่ · แสดง 6 จาก 20” ที่อัปเดตตามเงื่อนไข

![ผลค้นหาคำว่า “เกาะ” แสดงเฉพาะสถานที่ที่เป็นเกาะ พร้อมป้ายประเภทและจังหวัดของแต่ละการ์ด](/images/site-search-koh.webp)

ลองพิมพ์ “เกาะ” — ผลลัพธ์กรองเหลือเฉพาะเกาะ แต่ละการ์ดมีป้ายประเภท (เช่น ทะเล) และหมุดจังหวัด (ภูเก็ต พังงา กระบี่) ใช้เป็นแนวทางตรวจสอบว่าข้อมูลแต่ละสถานที่ถูกจัดโครงสร้างจริง ไม่ใช่แค่ข้อความยาว ๆ

## โครงสร้างข้อมูลที่ทำให้ค้นหาได้

จากที่เห็นบนหน้าเว็บ ย้อนกลับไปที่ข้อมูลเบื้องหลัง — แต่ละสถานที่ต้องมีอย่างน้อย:

| ฟิลด์ | ตัวอย่าง | ใช้ที่ไหน |
| --- | --- | --- |
| ชื่อไทย | หมู่เกาะสิมิลัน | หัวการ์ด, ค้นหาภาษาไทย |
| ชื่ออังกฤษ | Similan Islands | ค้นหาด้วยคำอังกฤษ (beach, old town) |
| จังหวัด | พังงา | dropdown จังหวัด, หมุดบนการ์ด |
| ประเภท | ทะเล / ธรรมชาติ / วัฒนธรรม | dropdown ประเภท, ป้ายบนการ์ด |
| คำอธิบาย + คำแนะนำการเดินทาง | — | เนื้อหาในการ์ด |

การค้นหาไทย–อังกฤษพร้อมกันได้ เพราะข้อมูลถูกเก็บเป็นฟิลด์แยกตั้งแต่ต้น ไม่ใช่การค้นหาในข้อความอิสระ — โครงสร้างนี้เองที่ทำให้ต่อยอดเป็นระบบหลังบ้านจัดการสถานที่ได้ง่ายใน [บท 09](09-admin-cms.md)

## ข้อควรระวังและบทเรียน

- **ตรวจความถูกต้องของข้อมูลที่ AI ค้นมาให้** — จำนวน 20 สถานที่น่าประทับใจ แต่ชื่อ จังหวัด และคำแนะนำการเดินทางควรตรวจกับแหล่งทางการก่อนใช้จริง AI รวบรวมได้เร็วแต่ไม่รับประกันความถูกต้อง 100%
- **ค้นหาด้วยหลายภาษาต้องทดสอบด้วยหลายภาษา** — ลองทั้ง “เกาะ”, “หาด”, “beach”, “old town” และชื่อจังหวัดตรง ๆ เพื่อยืนยันว่าจับคู่ไทย–อังกฤษทำงานจริง
- **ตัวนับผลลัพธ์คือเครื่องมือตรวจงาน** — ถ้ากรอง “กระบี่” แล้วตัวนับไม่เปลี่ยน หรือแสดงเลขที่ขัดกับจำนวนการ์ดบนจอ ให้แจ้ง agent แก้ทันที

ต่อไป: [บท 05 — เติมรูปจริงในการ์ดพร้อมเครดิตภาพ](05-card-images.md)
