7 Ocak 2016 Perşembe

ElasticSearch Nedir ?

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.

Windows İçin Kurulumu
Elasticsearch’ün Java ile çalıştığını tekrar belirtmek isterim. Öncelikle Standart Java Kurulumunu yapmalısınız.

Java kurduktan sonra Bilgisayar Özellikleri -> Gelişmiş Sistem Ayarları -> Ortam Değişkenleri kısmına Java’nın yolunu eklemelisiniz.


Elasticsearch indirmek için Tıklayın Ben 1.7.3 versiyonu ile işlem yapacağım.
İndirme işleminden sonra cmd ile bulunduğu dizine geliyoruz.


Daha sonra bin klasörüne geçiş yapıyoruz.


service install komutunu girerek yüklemeye başlıyoruz.


Yükleme bittikten sonra ise karşımıza şöyle bir ekran çıkıyor.


Kurulum bittikten sonra server start komutu ile başlatıyoruz.
ElasticSearch varsayılan olarak 9200 portunu kullanıyor
Bizde http://localhost:9200 adresinden kontrol edelim

Evet kurulumun tamamlanmış olduğunu göstermek için bize bir json çıktısı verdi.
Bir sonraki yazımda PHP ile ElasticSearch uygulamaları yapmayı düşünüyorum. 

Hiç yorum yok:

Yorum Gönder