Elasticsearch คืออะไร?

Elasticsearch

เนื่องจากที่บริษัทกำลังจะก้าวเข้าสู่โลก Big Data (จริงๆ เข้ามานานแล้วแหละ แต่เริ่มจะมีโอกาสได้ใช้ประโยชน์จากมัน) ช่วง 3-4 วันที่ผ่านมานี้ก็เลยมีโอกาสได้ลองแตะๆ Elasticsearch อยู่บ้าง จริงๆ มีอีกตัวหนึ่งที่คิดไว้คือ Solr แต่ส่วนตัวแล้วชอบชื่อ Elasticsearch มากกว่า ดูหล่อกว่า เลยเริ่มศึกษาจาก Elasticsearch ก่อน

Elasticsearch คืออะไร?

Elasticsearch คือ distributed data store ตัวหนึ่งที่มีความสามารถหลักๆ คือ search (พัฒนาต่อยอดมาจาก Lucene) ที่ไม่ใช่ search แบบธรรมดานะ แต่เป็น distributed search ที่ทุกๆ ฟิลด์ข้อมูลที่เก็บจะถูกทำ index ไว้ ทำให้ความเร็วในการ search กับข้อมูลขนาดมหาศาลนั้นแทบจะเป็น real-time เลยทีเดียว (โหดมาก) และการติดต่อกับส่วน data store สามารถทำได้โดยผ่าน RESTful API ซึ่งหมายความว่า.. มันจะง่ายโคตรๆ ในการอ่านเขียนข้อมูลกับตัว Elasticsearch 😀 แฮปปี้กันเลยทีเดียว

Honza Král  ได้รวม buzz-word เกี่ยวกับ Elasticsearch เอาไว้ ซึ่งก็บ่งบอกความเป็นตัวตนของมันได้อย่างดีเลยทีเดียวแหละ

REST HTTP JSON distributed search analytics real-time scalable open-source Lucene ...

ขั้นตอนการติดตั้ง?

ตอนแรกผมคิดว่าต้องวุ่นวายแน่นอน แต่เอาเข้าจริงกลับง่ายมากถึงมากที่สุด ติดตั้งบนเครื่องเราเองได้เลย มี 4 ขั้นตอนตามนี้ โดยที่เราต้องลง JDK ก่อนนะครับ

  1. wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.1.0.tar.gz (ตอนที่เขียนบล็อกอยู่นี้ เวอร์ชั่นล่าสุดคือ 1.1.0)
  2. tar xzvf elasticsearch-1.1.0.tar.gz แล้ว cd เข้าไปที่ folder นั้น
  3. bin/elasticsearch
  4. ทดสอบโดย curl localhost:9200 (default port คือ 9200) แล้วจะเห็นผลลัพธ์ในรูป JSON ออกมา

เสร็จสิ้นกระบวนการการติดตั้ง >_< ง่ายไปไหม ส่วนพวก configuration ขอไปอ่านทำความเข้าใจก่อน แล้วจะมาเขียนในบล็อกถัดๆ ไปครับ

เนื่องจาก Elasticsearch มี data store ของมันเอง ถ้าเราอยากใช้คู่กับ Hadoop นี่จะเป็นไปได้ไหม? คำตอบอยู่นี่ Elasticsearch and Hadoop

จริงๆ ข้อมูลที่หามาแค่นี้ก็ยังลังเลอยู่นะว่าจะใช้ Elasticsearch แบบเต็มตัวดีหรือเปล่าจนกระทั่งได้เจอบทความนี้ Not just for search: Using ElasticSearch with Machine Learning Algorithms เท่านั้นแหละ คล้ายๆ กับดวงตาเห็นทางสว่างอย่างไงอย่างงั้น

"ทุกอย่างในโลกนี้ล้วนคือการ Search"

เวอร์ไปนะ แต่มันคือเรื่องจริง 🙂

Author: zkan

Soon to be a newbie data scientist. I ♥ machine learning, computer vision, robotics, image processing, data visualization, and data analytics.

3 thoughts on “Elasticsearch คืออะไร?”

  1. นำ Elasticsearch ใช้งานด้านไหนครับ มีคนแนะนำว่าเร็วเลยอยากนำมาเก็บ Log ครับ พอจะแนะนำการนำไปใช้เก็บ Log บ้างได้มั้ยครับ

  2. ตอนนี้ที่ใช้หลักๆ คือเก็บข้อมูลเอาไว้ search ครับ ส่วน Log ก็ใช้ Kibana เฉยๆ ครับ ยังไม่ได้ลงลึกอะไรมาก แหะๆ แต่อีกหน่อยคงได้ใช้เก็บ Log ของผู้ใช้งานระบบครับ ผมกำลังศึกษาจากบล็อกนี้อยู่ http://www.cubrid.org/blog/dev-platform/our-experience-creating-large-scale-log-search-system-using-elasticsearch/ ลองตามไปอ่านดูนะครับ เผื่อเป็นประโยชน์ 😀

Leave a Reply

Your email address will not be published. Required fields are marked *