Tutorial ini dibuat untuk ElasticSearch versi 5.2. Versi 5 menampilkan banyak perubahan yang dapat mengganggu dalam hal kueri DSL dan pemetaan.
Jika Anda masih menjalankan versi 2.x, silakan lihat cabang v2 dari repositori ini .
Saya telah menyiapkan banyak contoh untuk menampilkan fitur dan kekuatan ElasticSearch. Banyak informasi didasarkan pada "ElasticSearch, The Definitive Guide".
Unduh ElasticSearch & Kibana di sini, lalu ikuti langkah sederhana berikut:
./bin/elasticsearch
./bin/kibana
Latihan 1 sangat sederhana dan tujuannya adalah untuk memahami antarmuka ElasticSearch RESTFul.
Topik:
Latihan beban 1
Pada latihan 2 kita akan mengindeks banyak data. Untuk meningkatkan kinerja, kami melakukan ini secara massal.
Data ini berisi informasi dari blog Combell. Saya telah mengindeks informasi berikut:
Data ini akan digunakan pada latihan lainnya.
Memuat data blog secara massal
Dalam latihan 3 kami melakukan beberapa kueri dasar menggunakan DSL kueri ElasticSearch. DSL berbasis JSON dan kuerinya adalah penelusuran teks lengkap.
Berikut beberapa penelusuran yang kami lakukan:
Latihan beban 3
Dalam latihan 4, kita akan fokus pada analisis teks lengkap dan bahasa manusia. Kami akan mengabaikan kemampuan database ElasticSearch dan melemparkan beberapa teks ke dalamnya, dan melihat bagaimana hal itu memberi token pada data.
Bergantung pada penganalisis yang Anda gunakan, ElasticSearch akan memberi token dan menyimpan data dengan cara yang berbeda. Jangan khawatir, data asli akan tetap berada di sumber dokumen, yang berubah adalah indeks terbalik.
Latihan beban 4
Latihan 5 membahas tentang skema indeks. ElasticSearch dipasarkan sebagai tanpa skema. Kenyataannya, ElasticSearch akan menebak skemanya untuk Anda.
Saya akan menunjukkan kepada Anda contoh di mana ia berhasil menebak dan contoh di mana ia tidak berhasil.
Latihan beban 5
Untuk menghindari ElasticSearch salah menebak skema, pemetaan eksplisit adalah ide yang bagus. Latihan 6 akan menyiapkan pemetaan yang tepat untuk contoh blog kita dan memasukkan kembali datanya.
Integer dan string akan ditentukan sesuai dan tanggal akan memiliki format yang tepat.
Pemetaan eksplisit akan digunakan dalam latihan 7.
Latihan beban 6
2 pencarian di latihan 5 yang gagal sekarang akan dieksekusi lagi. Berkat pemetaan eksplisit, hasilnya akan benar.
Latihan beban 7
Pada latihan 8, kita akan mendefinisikan pemetaan lain pada indeks blog kita. Pemetaan ini hanya memperlakukan kolom "judul" sebagai teks lengkap. String lainnya tidak akan dianalisis dan diberi token. Mereka akan disimpan "sebagaimana adanya" .
Data ini akan digunakan pada latihan 9.
Latihan beban 8
Dalam latihan 9, saya akan menunjukkan perbedaan antara pencarian teks lengkap menggunakan kueri dan pencocokan nilai persis menggunakan kueri dalam mode filter.
Pemetaan yang dilakukan pada latihan 8 telah memastikan sekarang ada kolom "kata kunci" pada properti judul. Artinya, kueri pada "judul" diperlakukan sebagai penelusuran teks lengkap dan filter boolean pada bidang "judul.kata kunci" biasa diperlakukan sebagai pencocokan nilai persis.
Dalam salah satu contoh, saya juga akan menunjukkan cara menggabungkan beberapa kueri dan filter.
Inilah yang akan kita lakukan dalam latihan ini:
Latihan beban 9
Kami akan kembali memetakan datanya. Kali ini, kita akan memperlakukan properti "title" sebagai bidang yang dianalisis. Secara default, penganalisis "standar" digunakan. Karena data kami dalam bahasa Belanda dan Inggris, saya menambahkan 2 kolom:
Ini adalah versi terakhir dari pemetaan. Contoh lainnya akan menggunakan pemetaan dan data ini.
Latihan beban 10
Latihan 11 membahas tentang analisis teks, berdasarkan bahasa. Latihan 4 merupakan petunjuk terhadap analisis data. Sekarang kita akan melakukan penelusuran yang bergantung pada analisis bahasa.
Latihan beban 11
Dalam latihan 12, kita akan membuat indeks "kota" baru, yang berisi semua kota yang terletak di provinsi West-Vlaanderen di Belgia. Indeks menyimpan nama kota dan koordinat geografisnya.
Pemetaan eksplisit dan datanya akan digunakan dalam latihan lain.
Latihan beban 12
Pada latihan sebelumnya, kita membuat indeks baru dan mengindeks beberapa data geografis. Dalam latihan 13, kita akan melakukan pencarian pada data ini.
2 pertanyaan akan ditampilkan:
Latihan beban 13
Dalam latihan 14, kita akan memuat data ke dalam indeks lainnya. Indeks ini disebut "mobil" dan berisi informasi penjualan mobil. Setiap transaksi melacak informasi berikut:
Informasi ini akan digunakan dalam latihan 15.
Latihan beban 14
Agregasi adalah fitur ElasticSearch yang sangat canggih. Ini pada dasarnya seperti "kelompokkan berdasarkan" dalam SQL, tetapi jauh lebih kuat. Agregasi adalah alasan mengapa ElasticSearch populer di komunitas data besar dan ilmu data.
Ini adalah agregasi yang akan kami jalankan dalam latihan ini:
Latihan beban 15