[เริ่มต้น] ลองเล่น Elasticsearch ผ่าน Kibana Dev Tools

บทความนี้ผมจะเล่าถึงการทดลองเล่นฟังก์ชั่นพื้นฐานง่ายๆ ของ Elasticsearch ผ่านทาง Kibana เพื่อเป็นแนวทางในการนำไปใช้พัฒนา Service หรือ Application ที่ต้องใช้งาน Elasticsearch ได้อย่างคล่องตัวและมีประสิทธิภาพมากยิ่งขึ้น

ทำไมต้องใช้ Kibana?

จากที่ผมได้มีโอกาสพัฒนาระบบ Search ด้วย Elasticsearch ผ่าน NodeJS มา ทำให้พบว่า เรามักจะพบปัญหาต่างๆในการประกอบ Query เพื่อส่งไป Elasticsearch ให้ได้ผลลัพธ์ตามที่เราต้องการ เช่น มองภาพไม่ออกว่าควรจะประกอบ Query อย่างไร, การ restart node แต่ละครั้งใช้เวลานาน, ผลลัพธ์ออกมาไม่ตรงตามตั้งใจไว้ เป็นต้น ดังนั้น การมีพื้นที่ให้ลองเล่นฟังก์ชั่นหรือ Query ต่างๆ ก่อนนำมา implement กับงานจริง จึงช่วยให้เราทำงานได้อย่างมีประสิทธิภาพมากขึ้น และยังช่วยประหยัดเวลาอีกด้วย

รู้จักกับ Kibana Dev Tools

Kibana Dev Tools คือ เครื่องมือสำหรับทดลองเล่นฟังก์ชั่นทุกอย่างที่ Elasticsearch ของเราทำได้ ซึ่งจะได้มาทันทีที่เราเริ่มต้นใช้งาน Elastic Cloud

สำหรับวันนี้ผมจะเล่าเพียงแค่ส่วน Console ของ Kibana Dev Tools เท่านั้นนะครับ

ในหน้า Console จะประกอบด้วย 2 ส่วน ดังรูป

หน้า Dev Tools
  1. ตัว Console สำหรับประกอบ Query เพื่อส่งไปยัง Elasticsearch
  2. หน้าต่างแสดงผลลัพธ์ที่ได้จาก Query จากส่วนที่ 1.
  • ในส่วนของ Console จะประกอบด้วย 4 ส่วนหลักๆ ดังรูป
  1. METHOD ที่จะใช้ส่ง Request ไปยัง Elasticsearch ดังเช่น GET, POST สำหรับขอดึงข้อมูล, PUT สำหรับอัพเดตหรือสร้างข้อมูล, DELETE สำหรับลบข้อมูลบน Index ที่ร้องขอ
  2. PATH คือ Path API ของ Elasticsearch (ดูเพิ่มเติม)
  3. QUERY คือ Body object สำหรับส่ง Request
  4. SEND ปุ่มสำหรับส่ง Request ที่ได้จากข้อ 1–3

คำศัพท์พื้นฐานที่ควรรู้

  • Index หรือ Indice คือ ชุดข้อมูลที่เปรียบเสมือน Database บน Elastic Cloud ที่เราสามารถสร้างขึ้นมาได้
  • Doc คือ ข้อมูลที่เก็บใน Index ซึ่งอยู่ในรูปแบบ JSON
  • Query คือ Body object ในรูปแบบ JSON สำหรับส่ง Request ไปยัง Elasticsearch

เริ่มต้นลงมือทำ Step-by-Step

  1. สำหรับคนที่ยังไม่มี Elastic Cloud ให้สมัครใช้งานฟรี 14 วันก่อนนะครับ (ไม่จำเป็นต้องมีบัตรเครดิต) สมัครที่ Elastic Cloud ได้เลย . *ใครมี Elastic Cloud แล้วสามารถข้ามขั้นตอนนี้ได้เลยครับ
  2. เมื่อ Deploy Elastic Cloud ของเราเรียบร้อยแล้ว ให้เข้าไปเอา Username Password สำหรับเข้า Kibana ได้ที่หัวข้อ Security แล้วกด Reset password ตามรูป

3. เมื่อได้ Username และ Password มาแล้วให้เข้า Kibana ทาง Tab ด้านซ้ายมือได้เลย

4. เมื่อเข้ามาในหน้า Kibana ได้แล้ว จะสังเกตได้ว่ามี Tab Dev Tools อยู่ทางด้านซ้ายมือ ให้คลิกเข้าไปได้เลย

เมื่อเข้ามาถึงหน้า Console Dev Tools ได้แล้ว เราก็จะสามารถเล่นกับ Elastic ของเราได้อย่างเต็มที่

5. เริ่มต้นกันที่สร้าง Index สำหรับเก็บข้อมูลของเรากันเลยดีกว่า

  • พิมพ์คำสั่ง PUT your_index_name(ชื่อ index ที่เราต้องการ) ลงบน Console และกดปุ่ม Send Request เพื่อทำการสร้าง Index สำหรับเป็นตัวเก็บข้อมูลของเรา
หน้าตาของผลลัพธ์ที่ได้กลับมาเมื่อเราทำการสร้าง Index สำเร็จ

6. เมื่อเราสร้าง Index สำหรับเก็บข้อมูลของเราได้แล้ว ทีนี้ก็มาถึงขั้นตอนใส่ข้อมูลลง Index ของเราแล้ว

  • ลองใส่ข้อมูลง่ายๆลง Index ของเราแบบทีละตัวด้วยคำสั่ง
เพิ่ม Doc 3 ตัว เข้าสู่ Index
  • เราสามารถใช้คำสั่งเดียวกันนี้เพื่อ Update Doc ของเราได้ โดยการระบุตำแหน่ง id ที่เราต้องการจะ Update และกรอกข้อมูลใหม่ลงไปทับได้เลย
  • *** เครื่องหมาย “{“ จะต้องอยู่ติดกับส่วน METHOD เท่านั้น ไม่เช่นนั้นจะไม่สามารถ Send Request ได้ ***

7. ในตอนนี้ Index ของเรามี Doc อยู่ 3 ตัว ทีนี้เราจะลองมาเล่นฟังก์ชั่น Search อย่างง่ายของ Elasticsearch กัน

  • Search Doc ทั้งหมดที่อยู่ใน Index นี้ด้วยคำสั่ง
Search all doc in workshop_kibana index
ผลลัพธ์ที่ได้จะสังเกตจากการ match_all: {}
  • ลอง Search แบบทีละตัวกันบ้าง ด้วยคำสั่ง
Search จาก Field: name ที่มีค่าเท่ากับ “Rhaast”
จะเห็นว่าผลลัพธ์ที่ได้ ก็คือ Doc ตัวที่สามของเรา ที่มี name = “Rhaast”

8. หลังจากได้ลองเล่นฟังก์ชั่น Search กันไปคร่าวๆแล้ว คราวนี้ลองลบข้อมูลออกดูบ้าง

  • ลองลบ Doc id ที่ 2 ออก ด้วยคำสั่ง
เหลือ Doc เพียงสองตัว, Doc ที่ชื่อว่า “Rhaast” ได้หายไปแล้ว
  • ลองลบออกทั้ง Index ด้วยคำสั่ง
เมื่อลบ index สำเร็จ จะมีข้อความบอกดังรูป

9. สำหรับความสามารถอื่นๆขั้นสูงของ Elasticsearch สามารถศึกษาเพิ่มเติมจาก Elastic API document ได้โดยตรงเลยครับ

จบบทความการเริ่มต้นใช้งาน Elasticsearch ด้วย Kibana กันไปแล้วนะครับ หวังว่าจะเป็นประโยชน์กับการนำไปประยุกต์ใช้ในการพัฒนาระบบไม่มากก็น้อย หากผิดพลาดประการใดก็ต้องขออภัยมา ณ ที่นี้ด้วยนะครับ

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade