ElasticSearch 

Dağınık verileri düzenleyen, verileri anlamlı hale getiren, yapılandıran ve bu sayede işletmelerin kullanımına sunan “Elasticsearch” bu sorunu çözmek için geliştirilmiştir. Peki, tam olarak Elasticsearch nedir?

Yeni nesil sistemlerle oluşturulmuş olan bir çeşit arama motoru olan Elasticsearch, büyük işletmelerin aslında online işlemlerini yaparken büyük bir hız, pratiklik kabiliyeti kazandırıyor. 

Neden Elasticsearch?

Her şeyden önce, Elasticsearch geleneksel veritabanlarının yapamadığını yapmakta mükemmeldir: FTS (Full Text Search). Bu arama tekniği söz konusu olduğunda hem ilişkisel hem de ilişkisel olmayan veritabanları çok yavaştır.

Full Text Search, arama kriterleriyle tam olarak eşleşmeyen belgeleri döndürme yeteneğine sahiptir. Örneğin; bir açıklamada "araba" ve "uçak" araması yaparsak, FTS destekleyen bir uygulama, bu kelimelerden yalnızca birini veya biraz değiştirilmiş versiyonlarını içeren sonuçları da döndürebilir. Ayrıca, önce en alakalı sonuçları döndürmesi de istenebilir.

Bu, LIKE operatörünü kullanan bir ilişkisel veritabanında teorik olarak mümkün olsa da, gerçek şu ki ilişkisel veritabanları bu iş yükleri için yapılmamıştır. Muhtemelen sorgunuz çok yavaş gelecektir.

Elasticsearch ise yazım hatalarını çok kolay bir şekilde halledebilir ve alaka düzeyi hakkında her şeyi bilir. Ayrıca REST API'sini kullanarak karmaşık sorgular yazmamıza da olanak tanır.

Ayrıca Elasticsearch hızlıdır, dağıtıktır, son derece iyi ölçeklenir ve veri kaybını önlemek için yük dengeleme mekanizmalarına sahiptir.


Dağıtık Veritabanı Nedir?

Adından da anlaşılacağı gibi dağıtık veritabanlarındaki verileriniz farklı sunucular arasında dağıtık bir şekilde tutulur. Dağıtık veritabanlarına örnek vermek gerekirse alağıdaki veritabanı teknolojilerini sıralayabiliriz;

- ElasticSearch
- Cassandra
- Couchbase
- MongoDB

Dağıtık veritabanlarının en büyük avantajı scaling'e uygun olmasıdır. Gelen değişken yüke göre cluster'a yeni node ekleyerek veritabanı performansınızı yatayda büyüyerek arttırabilirsiniz.

Elasticsearch'te veriler aslında index dediğimiz yapılarda tutulur ve bu index'ler shard'lara bölünür. Bu shard'lar da farklı cluster node'larında tutularak veriler dağıtık bir şekilde sunucularda saklanmış olur. İstenirse bu shard'lara replica da eklenerek yedeklilik de sağlanabilir.

Visual search query image

Elasticsearch Avantajları

- Kolay kurulum ve cluster konfigürasyonu
- Kolay entegrasyon
- Kolay uygulama geliştirme
- Ücretsiz kullanım ve bir çok open-source araçlar
- Yüksek Performans 


Elasticsearch hangi projelerde tercih edilir?

Çok geniş bir kullanım alanı olan Elasticsearch özellikle hızlı indexlenmesi gereken ve indexlenen veri üzerinde Full Text Search yapılması gereken uygulamalarda daha çok tercih edilmektedir. Örneğin;

  • E-Ticaret siteleri arama çubuğunun arkasında
  • Uygulama loglarının saklanması
  • FTS ihtiyacı olan tüm uygulamalar
  • Otomatik tamamlama ile search ihtiyaçları