ElasticSearch

By | 31 Ağustos 2016

ElasticSearch Java ile geliştirilmiş açık kaynak, lucene tabanlı, ölçeklenebilir bir tam metin(full text) arama motoru ve veri analiz aracıdır.
Günümüz bilişim dünyasında, sosyal medyada, video paylaşım sitelerinde, iletişim, sağlık, güvenlik ve diğer alanlarda hizmet veren orta ve büyük ölçekli şirketlerde her an devasa ölçekte veri üretiliyor.
Burada bir bilgi/veri okyanusundan bahsediyoruz ve bilişim dünyasında bu okyanusa kısaca big data diyoruz.
Big data dünyasında bahsettiğimiz bu verilerin önemli bir bölümü başlangıçta, yapılandırılmamış(unstructured) dağınık ve tek başına çok da anlamlı olmayan haldedirler.
Bu sebeple bu devasa verinin performanslı olarak kayıt altına alınması, erişilmesi, analiz edilip işlenmesi gibi ihtiyaçlar söz konusudur.
ElasticSearch, benzeri arama motorları gibi, big data dünyasına has bahsedilen problemlerle başa çıkmak adına geliştirilmiş araçlardan birisidir.
Gerçek zamanlı(realtime) ve dağıtık(distributed) oluşu en önemli artılarındandır. Yani özetle çok hızlıdır diyip geçelim..
Güçlü ve Esnektir.ElasticSearch bildiğiniz bir çok BigData(Büyük veriler ile çalışan sistemler) yapılarda içerik aramaları, veri analizi ve sorgulamalar için kullanılmakta. örneğin Mozilla, Foursquare, GitHub gibi..

Full Text Search (Tam metin arama)
Veritabanları büyüdükçe hız/performans sorunları yaşanmaktadır.Çözüm olarak metin alanlarında yer alan kelimelerin endekslenerek kataloglanması yoluna gidilmiş ve bu sayede büyük boyutlu veriler ile çalışılırken dahi, veritabanlarının daha hızlı, performanslı cevap vermesi sağlanmıştır.

Index
ElasticSearch belge yönelimli(document oriented) bir arama motorudur. ElasticSearch’te her kayıt, yapılandırılmış JSON belgesidir. Bir başka deyiş ile, ElasticSearch’e endekslenmesi için gönderilmiş her veri bir JSON dokümandır. Dokümanın bütün alanları varsayılan olarak endekslenir ve tek bir sorguda kullanılabilir.
Veritabanı yönetim sistemlerine kıyasla ElasticSearch endeksleri, veritabanları gibi düşünülebilir. Nasıl ki bir veritabanı, düzenli bilgiler topluluğudur, ElasticSearch endeksleri de yapılandırılmış JSON belgeler topluluğudur.

Type
Tipleri, yine veritabanı yönetim sistemlerine kıyasla tablolar gibi düşünebiliriz. Endeksler, bir ve birden fazla tip içerebilir.

RESTfull Api
ElasticSearch için ikinci önemli özellik bence günümüzde mobil uygulamalar, angular js vb. sistemlerde kullandığımız RESTFull API. ElasticSearch RESTfull Api ye göre uyarlanmıştır. Yapılacak tüm işlemler RESTfull API ile, HTTP üzerinden JSON kullanarak gerçekleştirilebilir.

Cluster
Cluster verilerin tümünün tutan bir yada birden çok node’un (server’ın) kümelenmiş halidir. Cluster’lar eşsiz isimlere sahiptir ve default isimleri “elasticsearch”tür. Bu isim önemli çünkü bir node sadece isimle belirlenmiş olan, katılmasının mümkün olduğu cluster’a katılabilir. Production’da özel bir isim koymak faydalı olacaktır. Ayrıca içerisinde tek bir node bulunan bir cluster kullanmanın da herhangi bir sakıncası olmadığı gibi, her biri eşsiz isimlere sahip birden çok cluster’da kullanılabilir.

Bir sonraki yazıda kurulum ve kullanım hakkında bilgiler yer alacaktır.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir