Elasticsearch เครื่องมือที่ใช้สร้าง Search Engine สำหรับฐานข้อมูลของคุณ
หากคุณเป็นคนที่ทำงานกับข้อมูลจำนวนมหาศาลแล้วพบว่า เวลาที่ต้องการค้นหาอะไรก็ตามในฐานข้อมูลให้เจอนั้นไม่ใช่เรื่องง่ายเลย ทั้งๆ ที่คุณได้จัดระเบียบไฟล์ให้อยู่ในที่เดียวกันแล้ว Elasticsearch คือสิ่งจะช่วยให้คุณสามารถค้นหาสิ่งต่างๆ ในฐานข้อมูลได้ง่ายและรวดเร็วขึ้นอย่างที่ไม่เคยเป็นมาก่อน
เราจะพาคุณไปรู้จักกับเครื่องมือหรือเฟรมเวิร์ก ที่มาช่วยแก้ปัญหาเรื่องการจัดระเบียบและการค้นหาข้อมูลให้กับคุณ อย่างเจ้า Elasticsearch ผ่านทางหัวข้อที่น่าสนใจทั้ง 4 ดังนี้
Elasticsearch คืออะไร?
Elasticsearch คือเครื่องมือที่ใช้สร้างโปรแกรมการค้นหา (Search Engine) สำหรับค้นหาข้อมูลต่างๆ ในฐานข้อมูล เช่น ข้อมูลสินค้าที่มีในสต็อก ไปจนถึง log ของระบบที่เกิดขึ้นในแต่ละวัน นอกจากนี้ ยังสามารถใช้สร้างฐานข้อมูลที่ค้นหาทุกสิ่งที่ต้องการได้สะดวกรวดเร็วและประหยัดเวลาในการจัดการไฟล์
ย้อนกลับไปในปี 2010 Elasticsearch ถูกพัฒนาต่อยอดจาก Apache Lucene ซอฟต์แวร์โอเพ่นซอร์ส และได้มีการนำมาพัฒนาต่อบน Java จนทำให้มันกลายเป็นฐานข้อมูล NoSQL (ไม่ใช่เชิงสัมพันธ์) ซึ่งปัจจุบันมีการใช้อย่างแพร่หลาย ตั้งแต่นำมาใช้สร้างแอปพลิเคชันรวมไปถึงการจัดทำฐานข้อมูล และฐานข้อมูล NoSQL มีจุดเด่นดังนี้
ยืดหยุ่นสูง – ฐานข้อมูล NoSQL ช่วยให้ Developer จัดการกับข้อมูลแบบไม่มีโครงสร้าง (unstructured data) เช่น ประมวลผล Log, XML, JSON และเอกสารต่างๆ ได้ง่าย ทำให้การทำงานมีความความยืดหยุ่นเมื่อต้องใช้จัดการงานที่มีความเฉพาะทางสูง
รองรับการปรับขนาดและการเชื่อมต่อ – ฐานข้อมูล NoSQL สามารถปรับขนาดให้ใหญ่ขึ้นโดยไม่จำเป็นต้องเพิ่มจำนวนเซิร์ฟเวอร์ และยังทำงานเชื่อมโยงกับ data center ที่อื่นๆ ได้พร้อมกัน นั่นทำให้ผู้ให้บริการคลาวด์หันมาใช้ฐานข้อมูลชนิดนี้กันอย่างแพร่หลาย
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 ข้อที่ระบบจะนำมาพิจารณา
Term frequency ยิ่งข้อความที่ต้องการค้นหามีอยู่ในเอกสารนั้นมากเท่าไร เอกสารดังกล่าวก็ยิ่งมีความเกี่ยวข้องมากขึ้นเท่านั้น
Inverse document frequency ยิ่งมีเอกสารในช่องที่มีข้อความที่ต้องการค้นหามากเท่าไร คำดังกล่าวก็ยิ่งมีความสำคัญน้อยลงเท่านั้น
Field length ยิ่งเอกสารมีข้อความที่ต้องการค้นหาในช่องที่สั้นมาก (มีคำไม่กี่คำ) ก็มักจะมีความเกี่ยวข้องมากกว่าเอกสารที่มีข้อความที่ต้องการค้นหาในช่องที่ยาวมาก (มีหลายคำ)
3. Dashboard (ระบบแสดงผล)
ใน Elasticsearch จะมีหน้าแสดงข้อมูลที่เรียกว่า Kibana ซึ่งช่วยให้คุณเห็นข้อมูลต่างๆ ในรูปแบบแผนภูมิ แผนที่ และฟิลเตอร์ ที่ผสมผสานกันจนออกมาเป็นข้อมูลภาพรวมได้อย่างรวดเร็ว และยังช่วยให้การจัดการและตัดสินใจทำอะไรกับข้อมูลเหล่านั้นมีความสะดวกมากยิ่งขึ้น
4. จุดเด่นของ Elasticsearch
เหตุผลที่ทำให้ Elasticsearch ถูกนักพัฒนานำมาใช้อย่างแพร่หลายมาจากจุดเด่น 4 ข้อ เพื่อไม่ให้เสียเวลาเราจะสรุปให้คุณได้เข้าใจ
ค้นหาข้อมูลได้เร็ว ช่วยลดระยะเวลาการค้นหาข้อมูลจากเดิมที่มีค่าเฉลี่ย 888 มิลลิวินาที ลดเหลือเฉลี่ยเพียง 66 มิลลิวินาทีเท่านั้น
ให้คะแนนผลการค้นหา ยิ่งผลการค้นหาตรงกับ keyword มากเท่าไร ระบบก็ยิ่งให้คะแนนผลการค้นหาสูงขึ้นเพื่อช่วยให้ผู้ใช้พบผลลัพธ์ที่ต้องการมากที่สุด
เข้าใจว่าต้องการหาอะไร เพียงระบุคำที่ต้องการค้นหาลงไป ระบบก็จะค้นหาคำจากกลุ่มคำในฐานข้อมูล และนำมาแสดงให้เห็นโดยไม่จำเป็นต้องพิมพ์คำค้นหาให้ถูกต้องเสมอไป
จัดกลุ่มคำอัตโนมัติ บอกลาการทำ brand id สำหรับข้อมูลเพื่อระบุว่าสิ่งๆ นั้นคืออะไร เพราะ Elasticsearch สามารถจัดกลุ่มคำให้แบบอัตโนมัติ
Searchkick เพื่อนคู่ใจ Elasticsearch
Searchkick เสมือนเพื่อนคู่ใจที่จะขาดไปไม่ได้หากคุณต้องการให้ Elasticsearch ทำงานได้อย่างมีประสิทธิภาพ สิ่งนี้คือ Gem ของ Ruby on rails (เฟรมเวิร์ก) ที่เป็นปลั๊กอินซึ่งทำงานคล้ายกับ Google extension ที่ใช้เพิ่มเติมฟังก์ชันต่างๆ บน Google Chrome นั่นเอง
สำหรับของหน้าที่ Searchkick ที่ช่วยให้ Elasticsearch ทำงานได้ดียิ่งขึ้นมีอยู่ 2 ข้อ
อัปเดตฐานข้อมูลอัตโนมัติ ทุกครั้งที่คุณอัปเดตข้อมูลล่าสุดลงในฐานข้อมูล Searchkick จะทำการส่งข้อมูลดังกล่าวไปให้ Elasticsearch จัดเก็บข้อมูลโดยอัตโนมัติ
เจอผลลัพธ์ที่ถูกต้องและไวขึ้น ทุกครั้งที่ Searchkick อัปเดตฐานข้อมูลอัตโนมัติ ก็จะทำการจัดกลุ่มและเรียงลำดับข้อมูลเพื่อช่วยให้การค้นหาข้อมูลทำได้รวดเร็ว และส่งผลให้ผู้ใช้เจอผลลัพธ์ใกล้เคียงกับคำที่พวกเขาต้องการค้นหามากที่สุดเสียงจาก developer ผู้ใช้ Elasticsearch กับ Searchkick
วิธีที่ดีที่สุดที่คุณจะเข้าใจว่าทำไม Elasticsearch กับ Searchkick ถึงเป็นหนึ่งในเครื่องมือค้นหาที่น่าใช้งานมากในตอนนี้ ก็คือการได้ฟังเสียงของนักพักฒนาผู้ได้ประยุกต์ใช้เครื่องมือสองตัวนี้จริงนั่นเอง
Suhas Shrestha – Head of backend ของ Morphosis กล่าวว่า
ผมได้ใช้ Searchkick กับ Elasticsearch ก็รู้สึกทึ่งกับความสามารถของมัน เพราะผลลัพธ์ให้ความรู้สึกเหมือนกับ Search Engine ซึ่งถ้าเราใช้ active record search แบบเดิมโดยที่เงื่อนไขซับซ้อน ก็จะทำให้ code ยาวมาก
การใช้ Elasticsearch กับผลิตภัณฑ์และบริการดิจิทัล
มาถึงตรงนี้คุณคงอยากรู้แล้วว่านอกจากจะนำ Elasticsearch ไปใช้จัดการฐานข้อมูลต่างๆ แล้ว ยังสามารถนำเอาระบบนี้ไปใช้งานกับผลิตภัณฑ์หรือบริการดิจิทัลอื่นๆ อะไรได้อีกบ้าง
Design ปกติแล้วบนแอปฯ และเว็บไซต์จะมี dropdown หรือ text box ที่ให้ผู้ใช้เลือกยี่ห้อหรือสินค้าที่ต้องการ โดย Elasticsearch ช่วยให้การค้นหาทำได้ง่ายขึ้น ด้วยการระบุชื่อยี่ห้อ ประเภท รวมถึงสีได้พร้อมกัน จากนั้นระบบจะแสดงผลลัพธ์ที่ใกล้เคียงที่สุด ซึ่งทำงานควบคู่กับ Searchkick ที่จะทำการส่งข้อมูลกลับมาให้อย่างรวดเร็ว
SEO คุณสามารถใช้ Elasticsearch เพื่อเก็บ log ของคนที่เข้ามาใช้งานเว็บไซต์ ซึ่งจะมีแดชบอร์ดอย่าง Kibana ที่คอยประมวลผลข้อมูลทั้งหมดที่เก็บได้ออกมาในรูปแบบของแผนภูมิ กราฟ หรือแม้แต่ heatmap ซึ่งจะช่วยให้คนทำ SEO สามารถเข้าใจพฤติกรรมของผู้ใช้ที่เข้ามาในเว็บไซต์มากยิ่งขึ้น
ประยุกต์ใช้ Elasticsearch กับผลิตภัณฑ์และบริการดิจิทัลของคุณเพื่อให้ได้ผลลัพธ์ที่ดียิ่งขึ้น
Elasticsearch กับ Searchkick เปรียบได้กับผู้ช่วยมือดีที่เข้ามาจัดการเรื่องฐานข้อมูลที่เคยเป็นเรื่องยาก มีแต่ความซับซ้อน และต้องใช้เวลาทำงานนานอย่างเหลือเชื่อ ให้กลายเป็นอะไรที่ง่าย รวดเร็ว และมองเห็นข้อมูลได้อย่างชัดเจนยิ่งกว่าที่เคย
โดยคุณจะได้ผลลัพธ์อันน่าทึ่งจากการประยุกต์ใช้ทั้ง 2 เครื่องมือดังนี้
จัดการข้อมูลที่ได้มาจากลูกค้าทุกช่องทางให้เป็นระเบียบ และสามารถค้นหาข้อมูลได้ง่ายเมื่อถึงคราวที่ต้องนำข้อมูลเหล่านั้นมาใช้งาน ทั้งยังช่วยเรื่องการวิเคราะห์ข้อมูลที่จะทำให้คุณพบกับโอกาสใหม่ๆ สำหรับการทำ digital product ในอนาคต
มีฐานข้อมูลที่พร้อมสำหรับการขยายขนาด ช่วยลดค่าใช้จ่ายในการบริการจัดการฐานข้อมูล ทั้งค่าเซิร์ฟเวอร์ ค่าซอฟต์แวร์ และค่าจ้างพนักงานในระยะยาวได้อย่างมีประสิทธิภาพ ด้วยการลงทุนเพียงครั้งเดียว
มอบ user experience ที่ดีที่สุดให้กับลูกค้าของคุณ ด้วยผลลัพธ์การค้นหาที่มีความใกล้เคียงกับคำค้นหามากที่สุด ไม่ว่าผู้ใช้จะระบุคำค้นที่ผิดหลักภาษา พิมพ์ไม่ครบ หรือรู้เพียงแค่ประเภทสินค้า บริการ และอะไรก็ตามที่ลูกค้านึกออก
Morphosis ดิจิทัลเอเจนซี่ชั้นนำของประเทศไทย พร้อมอย่างยิ่งที่จะช่วยสร้างสรรค์ผลิตภัณฑ์ดิจิทัลให้ตรงกับความต้องการของคุณมากที่สุด เพราะเราคือผู้เชี่ยวชาญด้านการพัฒนาผลิตภัณฑ์ดิจิทัลแบบครบวงจร ตั้งแต่ขั้นตอนการพัฒนา การออกแบบดีไซน์ UX/UI ไปจนถึงการตลาดดิจิทัล ปรึกษาเราฟรีได้เลยตอนนี้