Elasticsearch adalah sebuah database non relational yang fokus untuk digunakan sebagai tempat menyimpan data search engine. Hal yang menarik dari Elasticsearch adalah semua query dilakukan menggunakan http request. Data yang disimpan pada elasticsearch berbentuk json.
Konsep URL pada Elasticsearch
Secara default, URL pada elasticsearch memiliki format seperti berikut:
"http://localhost:9000/<index>/<type>/<id>"
Ketika dipadankan dengan relational database, maka ada beberapa kemiripan:
Cara Melakukan Create dan Update Data
Create data pada elasticsearch memerlukan http verb POST ataupun PUT. Perbedaan antara pemakaian POST dengan PUT adalah POST hanya digunakan untuk membuat data baru. Ketika menggunakan POST dengan <id> yang sama, maka data tidak akan bisa dibuat. PUT dapat digunakan untuk mengupdate data. Apabila <id> sama, maka PUT akan mengupdate data yang sudah ada. Berikut adalah contoh perintah untuk create data
curl -XPOST 'http://localhost:9200/blog/article/1' -d '{"title": "New version of Elasticsearch released!", "content": "Version 2.2 released today!", "priority": 10, "tags": ["announce", "elasticsearch", "release"] }'
Ketika berhasil, akan muncul respon seperti berikut
{ "_index" : "blog", "_type" : "article", "_id" : "1", "_version" : 1, "_shards" : { "total" : 2, "successful" : 1, "failed" : 0 }, "created" : true }
Ketika gagal karena ID nya sudah ada, respon yang muncul seperti berikut
{ "_index" : "blog", "_type" : "article", "_id" : "1", "_version" : 2, "_shards" : { "total" : 2, "successful" : 1, "failed" : 0 }, "created" : false }
Perhatikan bahwa data tidak berhasil dibuat (“created” : false).
Untuk mengubah data, gunakan PUT. Misalkan kita ingin mengubah nilai title menjadi Ini judul baru. Maka jalankan perintah berikut
curl -XPUT 'http://localhost:9200/blog/article/1?pretty' -d '{"title": "Ini Judul Baru", "content": "Version 2.2 released today!", "priority": 10, "tags": ["announce", "elasticsearch", "dev"] }'
Respon yang muncul seperti berikut.
{ "_index" : "blog", "_type" : "article", "_id" : "1", "_version" : 3, "_shards" : { "total" : 2, "successful" : 1, "failed" : 0 }, "created" : false }
Cara Mendapatkan Data
Untuk mendapatkan data yang sudah disimpan, maka digunakan http verb GET.
curl -XGET 'http://localhost:9200/blog/article/1?pretty'
Ketika data belum diupdate, maka hasil yang muncul seperti berikut.
{ "_index" : "blog", "_type" : "article", "_id" : "1", "_version" : 11, "found" : true, "_source" : { "title" : "New version of Elasticsearch released!", "content" : "Version 2.2 released today!", "priority" : 10, "tags" : [ "announce", "elasticsearch", "release" ] } }
Ketika data sudah diupdate, data yang muncul menjadi seperti berikut.
{ "_index" : "blog", "_type" : "article", "_id" : "1", "_version" : 3, "found" : true, "_source" : { "title" : "Ini Judul Baru", "content" : "Version 2.2 released today!", "priority" : 10, "tags" : [ "announce", "elasticsearch", "release" ] } }
Menghapus Data
Untuk menghapus data, gunakan http verb DELETE. Perintah untuk menghapus data yang telah kita masukkan adalah seperti berikut.
curl -XDELETE 'http://localhost:9200/blog/article/1?pretty'
Perintah di atas menghasilkan respon seperti berikut.
{ "found" : true, "_index" : "blog", "_type" : "article", "_id" : "1", "_version" : 4, "_shards" : { "total" : 2, "successful" : 1, "failed" : 0 } }
Halo semua Github memiliki fitur terkait Pull Request yang cukup luar biasa, yaitu dapat melakukan…
Hello everyone! 👋 Welcome to our step-by-step guide on using kubeadm to install Kubernetes. It's…
Proxmox adalah hypervisor yang populer digunakan karena penggunaannya yang cukup simpel jika dibandingkan dengan hypervisor…
This post is mirror of https://forums.rancher.com/t/failed-upgrade-from-v0-8-1-to-v1-0-0-caused-by-pv-created-before-v0-6-2/17586 I scale down all pods that has vpc to…
Ubuntu Konfigurasi network pada Ubuntu Server 18.04 berbeda dengan ubuntu versi sebelumnya. Versi sebelumnya menggunakan…
For detailed problems, see https://notulensiku.com/2019/02/fix-integrated-terminal-font-vscode/ To solve on mac, you need to install powerline fonts…