Elasticsearch คืออะไร

elasticsearch หลายคนคงคุ้นชื่ออยู่แล้ว หลังจากได้ใช้ elasticsearch มาพักใหญ่ ได้สรุปการใช้งานมาฝากกัน

2024-03-25 10:33:50 - @ratanon


Elasticsearch คือเครื่องมือที่ใช้สร้างโปรแกรมการค้นหา (Search Engine) สำหรับค้นหาข้อมูลต่างๆ ในฐานข้อมูล เช่น ข้อมูลสินค้าที่มีในสต็อก ไปจนถึง log ของระบบที่เกิดขึ้นในแต่ละวัน นอกจากนี้ ยังสามารถใช้สร้างฐานข้อมูลที่ค้นหาทุกสิ่งที่ต้องการได้สะดวกรวดเร็วและประหยัดเวลาในการจัดการไฟล์


ย้อนกลับไปในปี 2010 Elasticsearch ถูกพัฒนาต่อยอดจาก Apache Lucene ซอฟต์แวร์โอเพ่นซอร์ส และได้มีการนำมาพัฒนาต่อบน Java จนทำให้มันกลายเป็นฐานข้อมูล NoSQL (ไม่ใช่เชิงสัมพันธ์) ซึ่งปัจจุบันมีการใช้อย่างแพร่หลาย ตั้งแต่นำมาใช้สร้างแอปพลิเคชันรวมไปถึงการจัดทำฐานข้อมูล และฐานข้อมูล NoSQL มีจุดเด่นดังนี้


Elasticsearch ทำงานยังไง แล้วเกี่ยวข้องอะไรกับ database index?

ที่เราได้บอกไปตอนแรกว่า Elasticsearch ก็คือเครื่องมือค้นหาข้อมูลในฐานข้อมูลชนิดหนึ่ง ซึ่งมีองค์ประกอบหลักอยู่ 3 ส่วน ได้แก่ ระบบดัชนีค้นหา (database index), ระบบคะแนนผลลัพธ์ (relevancy) และระบบแสดงข้อมูล (dashboard) โดยทุกส่วนจะทำงานร่วมกันตลอดเวลา


คลิปด้านล่างอธิบายไว้ดีมาก..

1. Database index (ระบบดัชนีค้นหา)

Database index เป็นการนำเอาข้อมูลดิบทั้งหมดที่มีมาใส่ไว้ในฐานข้อมูลกลาง ไม่ว่าจะเป็นชื่อหนังสือ ผู้แต่ง ประเภท สารบัญ และเนื้อหาทุกตัวอักษร จากนั้น Elasticsearch จะจัดการทำ inverted index หรือการนำคำทั้งหมดที่อยู่ภายในหนังสือมาจัดเรียงไปจนถึงทำสำเนาให้มีลักษณะคล้ายกับสารบัญ ซึ่งช่วยให้ผู้ใช้หรือตัวคุณเองสามารถค้นหาคำต่างๆ ในฐานข้อมูลว่ามีปรากฏอยู่ในหนังสือเล่มใดบ้าง

2. Relevancy (ระบบคะแนนผลลัพธ์)

Relevancy เป็นการทำให้ระบบค้นหารู้ว่าควรจะแสดงผลลัพธ์อะไรให้ตรงกับสิ่งที่ผู้ใช้ต้องการมากที่สุด โดย Elasticsearch ใช้วิธีประเมินผลลัพธ์การค้นหาที่เรียกว่า TF-IDF (Term Frequency-Inverse Document Frequency) อันมีปัจจัยหลัก 3 ข้อที่ระบบจะนำมาพิจารณา


3. Dashboard (ระบบแสดงผล)

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

4. จุดเด่นของ Elasticsearch

เหตุผลที่ทำให้ Elasticsearch ถูกนักพัฒนานำมาใช้อย่างแพร่หลายมาจากจุดเด่น 4 ข้อ เพื่อไม่ให้เสียเวลาเราจะสรุปให้คุณได้เข้าใจ


อ้างอิงจาก https://www.elastic.co/guide/index.html

More Posts