Merhaba arkadaşlar,
Mobilhanem.com sitesi üzerinden sizler için yepyeni bir yazı dizisine başlıyoruz. Bu yazı dizisinde son yıllarda adını çokça duyurmayı başaran Elasticsearch nedir ve Elasticsearch nasıl kullanılır sorularının cevabını arayacağız.
Elasticsearch Nedir?
Elasticsearch başlangıcı itibarı ile bir arama motoru altyapısı olarak ortaya çıkmıştır. Fakat son yıllarda geçirdiği değişimler ile tüm verinizi tutup bu verilerinizden üzerinden arama ve analiz yapabilmenizi sağlayan bir framework’e dönüşmüştür. Günümüzde ebay, facebook, github gibi birçok büyük çaplı proje elasticsearch frameworkunu hem arama hem de veri analizi amaçlı kullanmaktadırlar.
Elasticsearch Altyapısı
Elasticsearch tamamen Java dilinde yazılmış, dağıtık mimariye sahip, açık kaynak kodlu bir projedir. Arama altyapısı, arama motoru konularına ilgi duyanların adını duymuş olabilecekleri Apache Lucene projesini temel almaktadır. Lucene projesi daha çok unstructured dediğimiz düz metinlerin indexlenmesi ve aranmasını sağlamaktadır. Elasticsearch ise Lucene altyapısının üzerine structured dediğimiz veri yapısı belli dokümanların indexlenmesi ve aranabilmesini sağlamaktadır. Temel olarak Elasticsearch üzerinde tutulan her doküman bir JSON nesnesidir ve o dokümanı diğer dokümanlardan ayıran tekil (unique) bir idsi olmalıdır.
Elasticsearch frameworkunden neler bekleyebilirsiniz?
HIZ
Öncelikle en önemli özelliği olarak elasticsearch frameworkunun çok ama çok hızlı olduğunu söyleyebiliriz. Temel olarak bir relational database sisteminin tutabileceği tüm verileri tutabildiği gibi bu verileri bir veritabanı sisteminden çok ama çok daha hızlı bir şekilde sorgulamanıza izin vermektedir. Bu hızı sağlayabilmek için sayısal değerleri, coğrafi değerleri, tarih ve metinleri tutabilecek özel index yapıları kullanmaktadır.
Ama kullanıcı olarak bu teknik detayları bilmenize hiç gerek yoktur. Temel olarak milyonlarca hatta trilyonlarca satırdan oluşan verilerinizi elasticsearche JSON formatında atarsınız ve doğru konfigürasyon ve kullanımı oldukça kolay olan APIsi ile milisaniyeler (evet yanlış duymadınız milisaniyeler) içerisinde verilerinize ulaşabilirsiniz.
ÖLÇEKLENEBİLİRLİK (SCALABILITY)
Elasticsearch isterseniz bir laptopta çalıştırılabilir ya da dilerseniz petabytelarca verinin tutulduğu devasa sunucu tarlalarında çalıştırılabilir. Ve bunu yapabilmek için kompleks kurulumlara ihtiyacınız yoktur. Cluster kurulumları tamamen elasticsearch altyapısı tarafından otomatik olarak yapılmaktadır.
Üstelik laptopunuzda kurulu olan bir elasticsearch ile haberleşmek ile binlerce sunucudan oluşan bir elasticsearch clusterı ile haberleşmek aynı kolaylıktadır. Elasticsearch sizin için veriyi ve indexleri nasıl tutması gerektiğine de otomatik olarak karar verir.
KOLAY KULLANIM
Elasticsearch sağladığı REST APIleri sayesinde rakiplerine göre oldukça kolay bir şekilde kullanılabilmektedir. Üstelik her dil için yazılmış özel kütüphaneleri ile Java, C#, Python, Javascript, PHP, Ruby gibi pek çok programlama dili ile de kullanabilirsiniz. Biz bu yazı dizimizde örneklerimizi dünya üzerinde en çok kullanılan backend programlama dillerinden biri olan Java ile vereceğiz.
Elasticsearch yazı dizimizde neler öğreneceğiz?
Özetle ifade edecek olursak bu yazı dizimizde
- Elasticsearch nedir?
- Nasıl kurulur?
- Veri formatı nedir, verilerimi elasticsearche nasıl atabilirim?
- Temel sorgu mekanizmaları nelerdir? Verilerimi nasıl sorgulayabilirim?
Konularına değinmeye çalışacağız.
Sonrasında ise örnek projeler üzerinden tanımlayacağımız basitten zora doğru problemlerimize elasticsearch ile nasıl çözümler geliştirebileceğimizi öğreneceğiz.
Bu dersimde Elasticsearch nedir hakkında genel bilgi vermeye ve bu yazı serimizde neler öğreneceğimi sizlere anlatmaya çalıştım. Konu hakkında görüş ve sorularınızı yorum olarak bırakabilir veya SoruCevap Mobilhanem sitemizden sorabilirsiniz.
Tüm ElasticSearch Dersleri için tıklayınız.
6