Skip to content

CRUD Elasticsearch

Elasticsearch sebagai database sudah memiliki API untuk mengakses database. API ini bisa digunakan untuk Create, Read, Update dan Delete seperti database pada umumnya, silahkan gunakan Dev Tool seperti pada gambar. Dev tools

Istilah

Nama Deskripsi simbol di db
index Seperti sebuah Database _index
type Seperti sebuah Tabel _type
id Identitas data _id
Timestamp penunjuk waktu @timestamp

Melihat database

Perintah untuk melihat semua indeks yang tersedia

GET _cat/indices

jalankan perintah untuk melihat indeks yang ada di elasticsearch anda

Membuat Index

Untuk membuat index pada elasticsearch menggunakan method PUT seperti berikut

PUT data

Buatlah sebuah indeks untuk personil ST16

Create

Untuk menambahkan data pada elasticsearch digunakan method POST seperti berikut

POST data/_doc
{
    "name":"thul",
    "title":"Mr",
    "active":true,
    "age":18
}

atau

PUT data-dummy/_create/id1
{
    "name": "Aqua",
    "age": "26"
}

Buatlah 5 dokumen random generate id, dengan field nama, umur dan kelas

pada contoh diatas, parameter _id di generate otomatis. Kita bisa menspesifikkan _id yang aka di generate dengan perintah _create maupun _doc

POST data-dummy/_doc/id1
{
    "name":"Cornellia",
    "title":"Mrs",
    "active":false,
    "age":29,
    "job":"teacher"
}

Buatlah 5 dokumen masing-masing dengan method _doc_ dan _create_ dengan id yang ditentukan. Temukan perbedaannya Bila ada error, apa pesannya?

untuk memasukkan banyak data sekaligus, digunakan perintah

POST data/_bulk
{"index": {"_index": "data-dummy", "_type": "_doc"}}
{"name":"thul","age":20}
{"index": {"_index": "data-dummy", "_type": "_doc"}}
{"name":"san","age":16}

buatlah sebuah kumpulan dokumen menggunakan bulk API

Read

Untuk membaca data gunakan perintah _search dengan method GET

GET _search

Data juga bisa dispesifikkan untuk sebuah indeks tertentu

GET data/_search

Bila indeks yang di query lebih dari 1, maka digunakan query

GET data,data-dummy/_search

Jika indeks memiliki pola yang sama seperti data, data-dummy, data-user,data-restaurant yang memiliki pola sama sama memiliki prefiks data, maka dapat digunakan query berikut untuk mencari di semua indeks yang memiliki pola sama tersebut

GET data*/_search

Kita juga bisa menspesifikkan dokumen yang akan kita cari dengan id

GET data-dummy/_doc/id1

Lakukan search pada elasticsearch anda apa hasil yang dapat diambil? apa perbedaan masing-masing search? hint

Update

Untuk mengupdate data, digunakan method POST dengan parameter _update seperti berikut untuk mengubah suatu field tertentu pada sebuah dokumen

POST data-dummy/_update/id1
{
    "script" : "ctx._source.name = 'Cornellia2'"
}

Jika ingin mengubah lebih banyak field pada suatu dokumen dapat digunakan perintah

POST data-dummy/_update/id1
{
    "doc": {
        "name": "Connel",
        "degree": "Magister"
    }
}

Lakukan update pada satu buah dokumen apa perbedaan yang muncul dari ke-2 command diatas?

Delete

Kita dapat menghapus data pada suatu indeks dengan perintah

DELETE data-dummy/_doc/id1

atau kita juga bisa menghapus satu indeks dengan perintah

DELETE data-dummy

Lakukan perintah delete diatas apa perbedaan yang muncul dari ke-2 command diatas?

Import Json

Pada sesi ini kita kana memasukkan data secara manual kedalam elasticsearch melalui kibana, pertama buka tab Home di side menu kibana, kemudian buka menu Add your data, setelah membuka halaman baru, pilih tab Upload file, kemudian upload file yang akan di upload. Kibana Upload

Kemudian setelah file diupload, klik tombol Import, masukkan nama indeks, dan klik Import lagi.

Data yang akan diupload dapat di download melalui drive. Kemudian spesifikasi indeks yang akan dibuat:

Nama File Nama Indeks
data-user.json data-user
data-restaurant.json data-restaurant
data-commerce.json data-commerce

Lakukan import diatas ada berapa jumlah data total yang diimport?