Halaman ini mendefinisikan istilah inti yang digunakan dalam Alibaba Cloud Elasticsearch.
kluster
Kluster Elasticsearch terdiri dari satu atau beberapa node. Semua node dalam kluster bekerja sama untuk menyimpan data. Setiap kluster harus memiliki nama unik—jika dua kluster menggunakan nama yang sama dalam lingkungan yang sama, pengecualian tak terduga dapat terjadi.
node
Node berjalan pada server di dalam kluster. Node menyimpan data serta mendukung operasi pengindeksan dan kueri. Node dapat menjalankan peran yang berbeda:
-
Data nodes menyimpan indeks. Gunakan data nodes untuk menambahkan, menghapus, dan memodifikasi dokumen, serta untuk mencari dan mengagregasi data.
-
Dedicated master nodes mengelola operasi tingkat kluster: membuat dan menghapus indeks, melacak node, dan mengalokasikan shard. Stabilitas dedicated master nodes sangat penting bagi kesehatan kluster. Secara default, node apa pun dalam kluster dapat berfungsi sebagai dedicated master node.
-
Client nodes mengurangi beban overhead CPU dari data nodes, sehingga meningkatkan performa komputasi dan stabilitas kluster.
index
Index adalah kumpulan dokumen dengan karakteristik serupa, analog dengan database dalam sistem relasional. Sebagai contoh, Anda dapat membuat tiga index terpisah untuk menyimpan data pelanggan, data katalog produk, dan data pesanan.
Setiap index diidentifikasi oleh nama berhuruf kecil. Saat melakukan pengindeksan, kueri, pembaruan, atau penghapusan dokumen, tentukan nama index tempat dokumen tersebut berada.
type
Type adalah partisi logis dalam sebuah index, analog dengan tabel dalam database relasional. Sebuah index dapat berisi dokumen dengan type berbeda, seperti type user dan type blog.
Dukungan terhadap type telah secara bertahap dihapus:
-
Elasticsearch 5.x — sebuah index dapat berisi beberapa type dokumen.
-
Elasticsearch 6.x — sebuah index hanya dapat berisi satu type dokumen. Konsep type sudah tidak disarankan lagi (deprecated).
-
Elasticsearch 7.x dan versi setelahnya — type sebuah index ditetapkan tetap sebagai
_doc.
Untuk informasi lebih lanjut, lihat dokumentasi Elasticsearch tentang penghapusan type.
document
Document adalah unit dasar informasi yang dapat diindeks, analog dengan baris dalam tabel database relasional. Sebagai contoh, sebuah document dapat merepresentasikan satu pelanggan atau satu produk. Setiap document merupakan objek JSON. Sebuah index dapat berisi jumlah dokumen yang tidak terbatas.
field
Field adalah unit terkecil dalam sebuah document, analog dengan kolom dalam tabel database relasional.
mapping
Mapping mendefinisikan cara sebuah document dan field-nya disimpan serta diindeks—termasuk nama field, tipe field, dan tokenizer yang digunakan. Mapping analog dengan skema tabel dalam database relasional.
Tabel berikut menunjukkan kesesuaian antara konsep Elasticsearch dan konsep database relasional.
| Elasticsearch | Relational database |
|---|---|
| index | database |
| type | table |
| document | row |
| field | column |
| mapping | schema |
Shard dan replica shard
Sebuah index dapat dibagi menjadi beberapa shard, yang didistribusikan ke berbagai node untuk mendukung pencarian terdistribusi. Shard terdiri dari dua jenis: primary shards dan replica shards.
Saat membuat index, tentukan jumlah primary shard dan replica shard. Jumlah primary shard tidak dapat diubah setelah index dibuat.
Konfigurasi shard default:
-
Elasticsearch sebelum versi 7.0: 5 primary shard dan 1 replica shard per primary shard, per index.
-
Elasticsearch 7.0 dan versi setelahnya: 1 primary shard dan 1 replica shard per index.
Tabel berikut merangkum perbedaan antara primary shard dan replica shard.
| Jenis shard | Permintaan yang didukung | Jumlah dapat diubah setelah pembuatan | Catatan |
|---|---|---|---|
| Primary shard | Kueri dan pengindeksan | Tidak — ditentukan saat pembuatan index. Lihat Langkah 3: Buat index. | Setiap dokumen hanya termasuk dalam satu primary shard. Jumlah primary shard menentukan volume data maksimum yang dapat ditampung oleh sebuah index. Primary shard yang lebih banyak akan meningkatkan overhead performa kluster. |
| Replica shard | Hanya kueri | Ya — dapat diubah kapan saja. Lihat Templat index. | Replica shard meningkatkan toleransi kesalahan: jika primary shard hilang, data dapat dipulihkan dari replica. Replica shard juga meningkatkan throughput pencarian dengan mendistribusikan beban kueri. |
Anda dapat melakukan kueri terhadap primary shard maupun replica shard untuk mengambil data.
Operasi tulis: ketika kluster menerima permintaan tulis, operasi tersebut diterapkan ke primary shard yang relevan, lalu data direplikasi ke replica shard-nya. Jumlah replica shard yang besar akan meningkatkan beban sinkronisasi data selama operasi tulis.
Baik jumlah shard maupun ukuran setiap shard memengaruhi stabilitas dan performa kluster. Rencanakan jumlah shard untuk semua index sebelum penerapan agar menghindari degradasi performa saat skala meningkat. Untuk panduan penentuan ukuran, lihat Evaluasi spesifikasi dan kapasitas penyimpanan.
gateway
Gateway menyimpan snapshot dari index. Secara default, sebuah node menyimpan semua index di memori. Ketika memori node penuh, index dialihkan ke disk lokal. Saat kluster dimulai ulang, index dipulihkan dari snapshot gateway, bukan dari disk lokal—proses ini jauh lebih cepat.
Jenis gateway yang didukung: sistem file lokal (default), sistem file terdistribusi, Hadoop Distributed File System (HDFS), dan Alibaba Cloud Object Storage Service (OSS).
discovery.zen
discovery.zen adalah mekanisme penemuan node otomatis yang digunakan di Elasticsearch. Elasticsearch merupakan sistem peer-to-peer (P2P) yang menemukan node dengan mengirimkan siaran (broadcast). Node berkomunikasi menggunakan protokol multicast dan P2P.
transport
Transport adalah lapisan komunikasi antara kluster Elasticsearch (atau node-nya) dan klien. TCP digunakan secara default. Integrasi plugin untuk mendukung protokol tambahan, termasuk HTTP over JSON, Thrift, Memcached, dan ZeroMQ.