Our blog

Mengenal konsep dasar Elasticsearch

 

Latest Blog's

Mengenal konsep dasar Elasticsearch

Elasticsearch     3 weeks ago


Elasticsearch adalah mesin pencari dan analisis yang bersifat open source. Elasticsearch  dikembangkan menggunakan Java dan telah digunakan oleh banyak perusahaan besar di seluruh dunia. Elasticsearch berlisensi di bawah lisensi Apache versi 2.0.

Dalam tutorial singkat ini, kami akan menjelaskan dasar-dasar Elasticsearch dan fiturnya.

Sebelum melanjutkan untuk mempelajari Elasticsearch, kamu harus memiliki pemahaman dasar tentang Java, JSON, search engine, dan teknologi web.

Interaksi dengan Elasticsearch adalah melalui RESTful API; Oleh karena itu, selalu disarankan untuk memiliki pengetahuan tentang RESTful API.

Elasticsearch adalah server pencarian berbasis Apache Lucene. Dikembangkan oleh Shay Banon dan direlease pada tahun 2010. Sekarang dikelola oleh Elasticsearch BV. Versi terbarunya adalah 6.1.

Elasticsearch dapat diakses dari antarmuka RESTful web service dan menggunakan format JSON (JavaScript Object Notation) untuk menyimpan data. Elasticsearch dibangun menggunakan bahasa pemrograman Java, yang memungkinkan Elasticsearch berjalan pada platform yang berbeda. Ini memungkinkan pengguna untuk mengeksplorasi jumlah data yang sangat besar dengan kecepatan sangat tinggi.

Fitur Umum dari ElasticSearch

  • Elasticsearch mampu mengelola data hingga petabyte data terstruktur dan tidak terstruktur.
  • Elasticsearch dapat digunakan sebagai pengganti database NoSQL seperti MongoDB, RavenDB, dll.
  • Elasticsearch menggunakan denormalization untuk meningkatkan performa pencarian.
  • Elasticsearch adalah salah satu mesin pencari skala enterprise yang populer, yang saat ini digunakan oleh banyak organisasi besar seperti Wikipedia, The Guardian, StackOverflow, GitHub, dll.
  • Elasticsearch bersifat open source dan tersedia di bawah lisensi Apache versi 2.0.

Konsep Utama dari Elasticsearch

  • Node - Ini mengacu pada contoh menjalankan Elasticsearch tunggal. Server fisik dan virtual tunggal menampung beberapa node bergantung pada kemampuan sumber daya fisik mereka seperti RAM, penyimpanan dan daya pemrosesan.
  • Cluster - Ini adalah koleksi dari satu atau lebih node. Cluster menyediakan pengindeksian kolektif dan kemampuan pencarian di semua node untuk keseluruhan data.
  • Index - Ini adalah kumpulan berbagai jenis dokumen dan properti dokumen. Indeks juga menggunakan konsep shards untuk meningkatkan performa. Misalnya, satu set dokumen berisi data aplikasi jejaring sosial.
  • Type/Mapping - Ini adalah kumpulan dokumen yang saling berbagi dalam indeks yang sama. Misalnya, Indeks berisi data aplikasi jejaring sosial, kemudian terdapat tipe spesifik untuk data profil pengguna, dan terdapat type lain untuk data chatting atau untuk komentar.
  • Document - Ini adalah kumpulan field yang ditentukan dalam format JSON.  Setiap dokumen dikaitkan dengan pengenal unik, disebut UID.
  • Shard - Indeks secara horizontal terbagi menjadi pecahan. Ini berarti setiap pecahan berisi semua properti dokumen, namun mengandung lebih sedikit jumlah objek JSON daripada indeks. Pemisahan horizontal membuat pecahan simpul independen, yang bisa disimpan di simpul manapun. Primary shard adalah bagian horisontal dari sebuah indeks dan kemudian pecahan utama ini direplikasi menjadi pecahan replika.
  • Replicas - Elasticsearch memungkinkan pengguna membuat replika indeks dan pecahannya. Replikasi tidak hanya membantu dalam meningkatkan ketersediaan data jika terjadi kegagalan, namun juga meningkatkan kinerja pencarian dengan melakukan operasi pencarian paralel pada replika ini.

Kelebihan dari Elasticsearch

  • Elasticsearch dikembangkan menggunakan Java, yang membuatnya kompatibel di hampir semua platform.
  • Elasticsearch bersifat real time, dengan kata lain dokumen dapat dicari di mesin ini dengan sangat cepat.
  • Elasticsearch didistribusikan, yang memudahkan untuk diukur dan diintegrasikan ke dalam organisasi besar manapun.
  • Membuat backup sangat mudah dengan menggunakan konsep gateway, yang hadir dalam Elasticsearch.
  • Penanganan multi-tenancy sangat mudah dilakukan pada Elasticsearch bila dibandingkan dengan Apache Solr.
  • Elasticsearch menggunakan objek JSON sebagai response data, yang memungkinkan untuk memanggil server Elasticsearch dengan sejumlah besar dengan bahasa pemrograman yang berbeda.
  • Elasticsearch mendukung hampir semua jenis dokumen kecuali yang tidak mendukung rendering teks.

Kelemahan dari Elasticsearch

  • Elasticsearch tidak memiliki dukungan multi bahasa dalam hal request dan response data (hanya menerima JSON) tidak seperti Apache Solr, di mana dimungkinkan dalam format CSV, XML dan JSON.
  • Elasticsearch juga memiliki masalah dalam "Split brain situations", namun dalam kasus yang jarang terjadi.

Membandingkan Elasticsearch dengan RDBMS

Dalam Elasticsearch, index adalah kumpulan tipe sepert halnyai database adalah kumpulan tabel dalam RDBMS (Relation Database Management System). Setiap tabel adalah kumpulan baris sama seperti setiap pemetaan kumpulan objek JSON Elasticsearch.

Elasticsearch RDBMS
Index Database
Shard Shard
Mapping Table
Field Field
JSON Object Tuple


SEARCH OUR ARTICLES
Card image cap
AUTHOR: Wisnu

"Client-facing" person. His goal - help clients/projects succeed and always coding.


See our project | Meet our team

Want to hire me or my team? Email here:
wisnu@tipa.co.id

Another article