Yang Sering Berkunjung

Cari Blog Ini

Entri Populer

Senin, 02 Mei 2016

Pencarian Full Text dengan Elasticsearch

Sebelum nya kita kenalan dulu apa itu elasticsearch, elasticsearch adalah search engine full-text yang bisa diakses melalui RESTful API. Elasticsearch berorientasi dokumen (hampir seperti MongoDB) artinya engine ini akan menyimpan objek atau dokumen daripada menyimpan data dengan representasi baris dan kolom. Dokumen yang disimpan tersebut akan di serialisasi sebagai JSON ketika diakses.
  • Indexing
  • Indexing adalah proses memasukkan data ke dalam elasticsearch. index kalau dalam relational database bisa dikatakan sebagai database.
    untuk membuat indexing bisa menggunakan postman chrome atau terminal dengan curl.

    indexing-postmanchrome
    membuat index dengan postman chrome
    jika hasilnya seperti diatas berarti sudah berhasil membuat index blog_db.
  • Mapping
  • Mapping adalah mendefinisikan tipedata dan beberapa atribut elasticsearch.
    sekarang kita akan membuat type posts pada index blog_db yang telah kita buat tadi. Jadi jika dalam relational database, blog_db adalah database dan posts adalah table.
    kita akan membuat mapping dengan post json dibawah ke dalam url http://localhost:9200/blogging/_mapping/posts

     {
        "posts" : {
            "properties" : {
                "judul" : {"type" : "string"},
                "isi" : {"type" : "string"},
                "author" : {"type" : "string"}
            }
        }
    }


ElasticSearch adalah

ElasticSearch merupakan search engine full-text yang bisa diakses melalui RESTful API. Search engine ini berorientasi dokumen (hampir seperti MongoDB) artinya engine ini akan menyimpan objek atau dokumen daripada menyimpan data dengan representasi baris dan kolom. Dokumen yang disimpan tersebut akan di serialisasi sebagai JSON ketika diakses.
Artikel ini hanya akan mengenalkan sedikit dasar dasar dari ElasticSearch.

Instalasi

Download paket ElasticSearch di sini dan ekstrak. Kemudian jalankan dengan perintah
$ ./bin/elasticsearch
Deafult port search engine ini akan berjalan pada 9200. Test query bisa dilakukan meskipun data belum ada, yaitu dengan menjalankan perintah berikut untuk mengetahui informasi engine ElasticSearch yang sedang berjalan
$ curl localhost:9200
{
  "status" : 200,
  "name" : "Black Queen",
  "version" : {
    "number" : "1.1.0",
    "build_hash" : "2181e113dea80b4a9e31e58e9686658a2d46e363",
    "build_timestamp" : "2014-03-25T15:59:51Z",
    "build_snapshot" : false,
    "lucene_version" : "4.7"
  },
  "tagline" : "You Know, for Search"
}

Indexing

Proses memasukkan data ke dalam ElasticSearch dinamakan dengan indexing. Karena engine ini memakai RESTful API maka data-data yang akan di indexing dengan mudah bisa dimasukkan melalui curl dan operasi HTTP seperti GET, PUT, DELETE.
Di Elasticsearch, dokumen adalah termasuk tipe dan tipe tersebut termasuk dalam index. Secara paralel bisa dibandingkan dengan database relasional:
Relational DB ⇒ Database ⇒ Table ⇒ Baris ⇒ Kolom
Elasticsearch ⇒ Index ⇒ Tipe ⇒ Dokumen ⇒ Field
Sebagai contoh:
Untuk memasukkan data index film dengan tipe (kategori) action dan mempunyai id 1.
$ curl -XPUT http://localhost:9200/film/action/1 -d '
{   
    nama: "The Raid 2: Berandal", 
    tahun: "2014",rating:"8.9", 
    imdb: "http://www.imdb.com/title/tt2265171/", 
    storyline: "Only a short time after the first raid, Rama goes undercover with 
    the thugs of Jakarta and plans to bring down the syndicate and uncover the corruption 
    within his police force."
}'
Pada keluaran konsol mungkin akan seperti ini
{
    "_index":"film",
    "_type":"action",
    "_id":"1",
    "_version":1,
    "created":true
}
Nilai "created"=true bearti data baru dimasukkan. Jika anda memakai operasi PUT dengan id yang sama maka data akan terupdate dan "created"=false.
$ curl -XPUT http://localhost:9200/film/action/1 -d '
{
    judul: "The Raid 2: Berandal", 
    tahun:"2014",rating:"8.9", 
    imdb:"http://www.imdb.com/title/tt2265171/", 
    storyline:"Only a short time after the first raid, Rama goes undercover with 
    the thugs of Jakarta and plans to bring down the syndicate and uncover the corruption 
    within his police force."
}'

Query

Query data sangat mudah dilakukan dengan operasi sederhana GET. Misalnya untuk mencari film dengan judul kata mengandung kata "berandal"
curl -XGET http://localhost:9200/film/action/_search?q=judul:berandal

{
    "took":7,
    "timed_out":false,
    "_shards":{
        "total":5,
        "successful":5,
        "failed":0
    },
    "hits":{
        "total":1,
        "max_score":0.15342641,
        "hits":[{
            "_index":"film",
            "_type":"action",
            "_id":"1",
            "_score":0.15342641, 
            "_source" : {
                judul: "The Raid 2: Berandal", 
                tahun:"2014",rating:"8.9", 
                imdb:"http://www.imdb.com/title/tt2265171/", 
                storyline:"Only a short time after the first raid, 
                Rama goes undercover with the thugs of Jakarta 
                and plans to bring down the syndicate and uncover 
                the corruption within his police force."
            }
        }]
    }
}
Jenis query string diatas termasuk dalam Search Lite. Untuk query data yang lebih lanjut sebaiknya memakai Query DSL.

Query DSL

Query ini memakai format JSON sebagai parameter query. Sebagai contoh
$ curl -XGET http://localhost:9200/film/action/_search 
'{
    "query":{
                "match": {
                    "about":"raid"
                }
            }
 }'
Query match diatas merupakan full-text search yang akan mencari semua dokumen yang MENGANDUNG kata "raid". Query DSL lebih fleksibel jika diinginkan query data yang lebih kompleks seperti filter search, , phrase search & highlighting. Untuk lebih jelasnya silahkan lihat Guide Query DSL.

Cluster, Node & Shard

Oh ya salah satu kekuatan dari engine ini yaitu secara alami merupakan sistem terdistribusi artinya dengan mudah sistem engine ini bisa diperbesar maupun diperkecil jika ada penambahan server atau istilahnya horizontal scaling.
Cluster
ElasticSearch Cluster
Untuk mengetahui kesehatan kluster, indikatornya yaitu warna seperti lampu lalu lintas green, yellow atau red
curl -XGET http://localhost:9200/_cluster/health
Contoh hasil keluaran di konsol bisa seperti ini
{
"cluster_name":"elasticsearch",
"status":"yellow",
"timed_out":false,
"number_of_nodes":1,
"number_of_data_nodes":1,
"active_primary_shards":2,
"active_shards":2,
"relocating_shards":0,
"initializing_shards":0,
"unassigned_shards":2
}
yang perlu menjadi perhatian adalah key status. 3 kemungkinan warna ini mempunyai arti sebagai berikut green Semua shard primer dan replika aktif.
yellow Semua shard primer arktif tpi replika tidak.
red Tidak semua shard primer & sekunder aktif.
Node
Node yang dimaksud disini adalah instance dari ElasticSearch. Satu cluster mengandung beberapa node elasticsearch yang sama sama berbagi data dan beban kerja. Satu master node elastisearch diperlukan di dalam cluster untuk manajemen node yang lain seperti penambahan dan penghapusan node. Perlu diingat bahwa klien bisa mengakses node elasticsearch manapun dalam cluster.
Untuk penambahan node dengan nama Node-2 anda bisa memakai perintah berikut
$ ./bin/elasticsearch -Des.node.name=Node-2
Shard
Shard yang dimaksud disini adalah kontainer data yang merupakan instance dari Apache Lucene lengkap dengan search engine sendiri. Bisa dikatakan merupakan bagian unit kerja terkecil dari ElasticSearch. Shard terbagi dua yaitu Shard Primer dan Shard Replika. Shard Primer ukurannya terbatasi dengan perangkat keras, kompleksitas dokumen dll sedangkan Shard Replika merupakan copy dari Shard Primer.
Jika anda ingin lebih mendalami scaling secara horizontal silahkan kunjungi website ElasticSearch.
Ok. Cukup sekian dulu untuk hari ini...

Jumat, 01 Januari 2016

LAPAK PAMUNGKAS STORE

MAMPIR YA DI LAPAKKU PAMUNGKAS STORE

Rabu, 02 Desember 2015

Good To Great: dari Baik menjadiPerusahaan Hebat



Baik adalah Musuh dari Hebat
Adalah kata-kata pembuka yang ada di halaman awal buku good to great ini. Buku ini berusaha menjelaskan beberapa alasan mengapa hanya beberapa perusahaan tertentu yang berhasil melompat dari sekedar ‘baik’menjadi ‘hebat’. Sedangkan kebanyakan perusahaan tidak bisa mencapai tingkat ‘hebat’ karena mereka merasa sudah ‘baik’.
Buku ini adalah jawaban, rahasia besar bagi mereka yang ingin menjadikan perusahaannya menjadi great!

1. Kepemimpinan tingkat 5, adalah kepemimpinan yang ditemukan dalamriset yang dilakukan untuk menulis buku good to great ini.Kepemimpinan ini memadukan antara profesionalisme dengankerendahan hati menjadi satu hal baru. Jim Collins menyebutnya paradoks. Mereka adalah para pemimpin yang sangat ambisius dalam bekerja, tidak punya agenda tersembunyi untuk kepentingan pribadi,tetapi semua ambisinya hanyalah untuk kesuksesan perusahaan. 

Mereka bukanlah orang yang suka menepuk dada jika berhasil, tetapi lebih sukamenunjuk teamnya yang berhasil. Mereka tidak suka menyalahkan,mereka menunjuk diri sendiri jika terjadi kesalahan dan segeramemperbaikinya. Mereka juga menerapkan sistem suksesi kepemimpinanyang baik dengan pengganti yang memiliki kepribadian dan visi yangkurang lebih sama dan mereka senang jika penggantinya nanti dapatmemimpin perusahaan sehingga mencapai kesuksesan yang lebih baik dibanding mereka sekarang.

2. Pertama siapa… Kemudian apa. 
Dalam Good to Great inidiumpamakan seperti penumpang yang menunggu antrian untuk masuk ke dalam bis. memilih penumpang terlebih dahulu, itu lebih pentingdibanding ke mana bis yang akan kita bawa menuju. Artinya, tim kita danorang-orang yang ada di dalamnya memegang peranan yang lebih pentingdibanding arah tujuan perusahaan. Sehingga dalam proses rekruitmen,menentukan orang yang tepat adalah hal yang wajib dilakukan agar visi perusahaan tercapai. Jadi, menemukan orang-orang yang kita anggaplayak adalah wajib hukumnya kemudian baru kita arahkan ke arah manayang tepat.


3. Hadapi Fakta Brutal. Jim Collins menggunakan istilah Stockdale paradox. 
Stockdale adalah nama seorang kolonel penerbang amerika yang pada saat perang Vietnam pesawatnya tertembak jatuh. Melaluikeuletannya, ketangguhannya bertahan dalam kamp tawanan serta dapatmemotivasi tawanan yang lain melalui metode yang sederhana. Iamenciptakan bahasa isyarat berupa ketukan di dinding, yang jika didengarkan labih detail adalah berupa kata-kata motivasi bagi tawananyang lain untuk terus bertahan sampai hari kebebasan. Semangatstockdale inilah yang mengilhami Jim Collins untuk mengambilnyamenjadi contoh good to great di bagian ini.

4. Konsep Landak adalah konsep yang mengatakan bahwa jika Andaingin menjadi Good to Great Company, maka Anda harus fokus padaKeunggulan Anda, yaitu: Fokus kepada apa yang menjadi hasrat utamaAnda, fokus pada mesin uang Anda dan fokus pada bidang di mana Andadapat menjadi yang terbaik. Ibarat landak yang selalu diganggu bila bertemu rubah, ia tidak menggubris gangguan itu, tetapi hanya diamsambil memekarkan duri-duri di tubuhnya ke segala arah. Ketika rubahtelah pergi ia melanjutkan perjalanannya. Fokus, fokus, fokus!

5. Budaya Disiplin Menciptakan Budaya Disiplin sebagai budaya yang betul-betul mengakar menjadi langkah berikutnya untuk menggapai darigood to great. disiplin dalam hal taat terhadap azas, aturan baku, SOPyang ada diperusahaan serta selalu mengembangkan kreativitas untuk  peningkatan kinerja. Bernard H. Semler, akuntan di Abbot menjadi perintis perilaku disiplin untuk departemen akunting. Dia memandang bahwa sistem kerja akuntan tradisional sudah bukan jamannya lagi. Olehkarena itu dia memperkenalkan Responsibility Accounting yangmerupakan mekanisme baru bahwa laporan cost, pendapatan perusahaan,dan investasi akan mudah diidentifikasi dengan masing-masing pekerja bertanggung jawab atas tugasnya. Kebijakan yang waktu itu tergolongradikal ini nyatanya mampu membawa Abbot menjadi jaya karenaakhirnya diterapkan pada semua departemen.

6. Teknologi Pemercepat Tidak satu pun perusahaan good to greatmemulai transformasinya dengan menjadi pelopor teknologi, sekali pundemikian mereka semua menjadi pelopor dalam aplikasi teknologi setelahmereka memahami bagaimana teknologi itu cocok dengan perpotongantiga lingkaran mereka. Hati-hati, teknologi digunakan setelah sumber daya manusianya siap untuk mengaplikasikan teknologi tersebut. Karena jika dibalik, teknologi baru mempersiapkan manusianya, maka akan


terjadi gagap teknologi massal yang akibatnya malah menjadikan kinerja perusahaan menurun.Good to Great Companies selalu mengatakan bahwa prestasi luar biasayang mereka raih bukanlah sebuah keajaiban yang harus dibesar- besarkan. Semua berjalan dengan normal dan natural. Semua orang hanya bekerja keras dari waktu ke waktu. Padahal itulah salah satu bentuk darikelebihan yang mereka miliki: rendah hati.Tags: kepemimpinan motivasi pelatihan