Elasticsearch - Konsep Dasar

Elasticsearch adalah server pencarian berbasis Apache Lucene. Ini dikembangkan oleh Shay Banon dan diterbitkan pada tahun 2010. Sekarang dikelola oleh Elasticsearch BV. Versi terbaru adalah 7.0.0.

Elasticsearch adalah mesin analitik dan pencarian teks lengkap terdistribusi dan open source. Ini dapat diakses dari antarmuka layanan web RESTful dan menggunakan dokumen JSON (JavaScript Object Notation) tanpa skema untuk menyimpan data. Itu dibangun di atas bahasa pemrograman Java dan karenanya Elasticsearch dapat berjalan di platform yang berbeda. Ini memungkinkan pengguna untuk menjelajahi sejumlah besar data dengan kecepatan sangat tinggi.

Fitur Umum

Fitur umum Elasticsearch adalah sebagai berikut -

  • Elasticsearch dapat diskalakan hingga petabyte data terstruktur dan tidak terstruktur.

  • Elasticsearch dapat digunakan sebagai pengganti penyimpanan dokumen seperti MongoDB dan RavenDB.

  • Elasticsearch menggunakan denormalisasi untuk meningkatkan kinerja pencarian.

  • Elasticsearch adalah salah satu mesin pencari perusahaan yang populer, dan saat ini digunakan oleh banyak organisasi besar seperti Wikipedia, The Guardian, StackOverflow, GitHub, dll.

  • Elasticsearch adalah open source dan tersedia di bawah lisensi Apache versi 2.0.

Konsep Utama

Konsep utama Elasticsearch adalah sebagai berikut -

Node

Ini mengacu pada satu contoh Elasticsearch yang sedang berjalan. Server fisik dan virtual tunggal mengakomodasi banyak node tergantung pada kemampuan sumber daya fisiknya seperti RAM, penyimpanan, dan daya pemrosesan.

Gugus

Ini adalah kumpulan dari satu atau lebih node. Cluster menyediakan pengindeksan kolektif dan kemampuan pencarian di semua node untuk seluruh data.

Indeks

Ini adalah kumpulan berbagai jenis dokumen dan propertinya. Indeks juga menggunakan konsep pecahan untuk meningkatkan kinerja. Misalnya, sekumpulan dokumen berisi data aplikasi jejaring sosial.

Dokumen

Ini adalah kumpulan bidang dengan cara tertentu yang ditentukan dalam format JSON. Setiap dokumen termasuk dalam suatu tipe dan berada di dalam indeks. Setiap dokumen dikaitkan dengan pengenal unik yang disebut UID.

Beling

Indeks dibagi secara horizontal menjadi pecahan. Ini berarti setiap pecahan berisi semua properti dokumen tetapi berisi lebih sedikit objek JSON daripada indeks. Pemisahan horizontal membuat shard menjadi node independen, yang dapat disimpan di node mana pun. Pecahan utama adalah bagian horizontal asli dari sebuah indeks dan kemudian pecahan utama ini direplikasi menjadi pecahan replika.

Replika

Elasticsearch memungkinkan pengguna membuat replika indeks dan shard mereka. Replikasi tidak hanya membantu dalam meningkatkan ketersediaan data jika terjadi kegagalan, tetapi juga meningkatkan kinerja pencarian dengan melakukan operasi pencarian paralel pada replika ini.

Keuntungan

  • Elasticsearch dikembangkan di Java, yang membuatnya kompatibel di hampir semua platform.

  • Elasticsearch bersifat waktu nyata, dengan kata lain setelah satu detik dokumen yang ditambahkan dapat dicari di mesin ini

  • Elasticsearch didistribusikan, yang memudahkan penskalaan dan integrasi di organisasi besar mana pun.

  • Membuat cadangan penuh mudah dilakukan dengan menggunakan konsep gateway, yang ada di Elasticsearch.

  • Menangani multi-tenancy sangat mudah di Elasticsearch jika dibandingkan dengan Apache Solr.

  • Elasticsearch menggunakan objek JSON sebagai respons, yang memungkinkan untuk memanggil server Elasticsearch dengan banyak bahasa pemrograman berbeda.

  • Elasticsearch mendukung hampir semua jenis dokumen kecuali yang tidak mendukung rendering teks.

Kekurangan

  • Elasticsearch tidak memiliki dukungan multi-bahasa dalam hal penanganan data permintaan dan respons (hanya mungkin di JSON) tidak seperti di Apache Solr, yang memungkinkan dalam format CSV, XML, dan JSON.

  • Kadang-kadang, Elasticsearch mengalami masalah situasi otak terbelah.

Perbandingan antara Elasticsearch dan RDBMS

Di Elasticsearch, indeks mirip dengan tabel di RDBMS (Relation Database Management System). Setiap tabel adalah kumpulan baris seperti setiap indeks adalah kumpulan dokumen di Elasticsearch.

Tabel berikut memberikan perbandingan langsung antara suku-suku ini−

Elasticsearch RDBMS
Gugus Database
Beling Beling
Indeks Meja
Bidang Kolom
Dokumen Baris