17 Temmuz 2018 Salı

Elasticsearch Giriş

Elasticsearch'e Giriş
Herkese merhabalar
Bu yaz stajında öğrendiğim elasticsearch konularını sizlerle paylaşmak istedim. Onun için bu yazı serisini başlattım. Herkese faydalı olması dileğiyle...

İlk önce Elasticsearch nedir ondan bahsetmek istiyorum.
Elasticsearch sitelerde, veri analizinde, veri modellemede kullanılan RestFul api ile haberleşen lucene tabanlı real-time bir arama motorudur. En önemli özelliklerinden bir tanesi çok hızlı istediğimiz sonuçları döndürüyor olmasıdır. Ayrıca veriler üzerinde analiz ve full text search yapabilmemizi sağlar. Çok geniş bir alanda kullanımı vardır.

Elasticsearch kavramları:
Node : Bir server'a kurduğumuz ve tek bir elasticsearch çalıştırdığımız elasticsearch instancesidir. Sorgularımızı (query), index'lerimizi, analizlerimizi bunlar üzerinden yaparız. Özel olarak isim vermezsek random bir isim atanır.
Cluster : Temel olarak cluster bir ağda ve birkaç sunucuda çalışabilen ve node'lerden oluşan bir node kümesidir.
Index : Relational Database'deki database'e benzetebiliriz. İsimleri küçük (lowercase) olmak zorundadır. Bir noda birden fazla index ekleyebiliriz. Bir index birden fazla node'a shard'lar vasıtasıyla yayılabilirler. Böylece performans artar.
Type : Index içerisinde tanımladığımız documentlerden oluşan bir yapıdır. Relational Database'deki table'lere benzetebiliriz. İsimlendirme kuralı ise lowercase olmak zorundadır.
Mapping : Yukarıda bahsi geçen type'lerin nasıl alanlara (field) sahip olacağını belirlediğimiz ve bu alanların hangi analyzer'ler ile kullanılması gerektiğini bildiren bir yapıdır. Relational Database'deki column type, relation'a benzetebiliriz.
Document : Bildiğimiz JSON nesneleridir. Relational Database'deki karşılıkları record'dur. CRUD işlemlerini bu yapılara uygularız.
Shard : Index'lerin daha küçük birimleridir. Her biri bir lucene instancesidir.
Replica : Shard'ların tek bir node'da değilde birden fazla node'a dağıtılarak her bir shard üstündeki yoğunluğu atıp daha performanslı bir yapı ortaya koymak için geliştirilmiştir. Ayrıca replica'sı olan her bir shard'ın yapısında bir bozulma olduğunda çalışmasına devam edebilmesini sağlar.

Bu yazımı daha da geliştireceğim inşaallah. Eksik kısımları yorum kısımlarında bana bildirirseniz çok sevinirim. Herkese bol okumalar...

Hiç yorum yok:

Yorum Gönder

Elasticsearch'te alias Olayı

Merhabalar, Bu yazımda sizlere elasticsearch'teki alias olayını aktaracağım. Diyelim ki biz yeni bir index oluşturduk. Bu index'imi...