Blog » Nedir, Nasıl Yapılır? » Elasticsearch Nedir?
Domain & Hosting Nedir, Nasıl Yapılır? Teknoloji WordPress

Elasticsearch Nedir?

Hosting Fiyatları

Big Data verilerini en doğru şekilde saklama, depolama ve analiz etme süreçlerinde bazı yardımcı araçlara ihtiyaç duyulmaktadır. Big Data verileri arasında metin arama (Full text search) ihtiyaçlarında ise Elasticsearch (Esnek Arama) kullanılmaktadır. 

ElasticSearch, işletmelerin arama ihtiyaçlarını karşılayan, AR-GE çalışmaları ile geliştirilmiş bir arama aracıdır. Elasticsearch çalışma sistematiği, metinler (Textler) üzerinden direk arama, sorgulama yapmak yerine, aramalarını indexler üzerinden yürütür. 

Klasik aramalara göre çok daha hızlı sonuç veren bu yöntem, sorgulamalar üzerinde istatistiksel analizlerin ve skorlamaların yapılamasına da imkan tanımaktadır. Elasticsearch’e veri kaydedildiği zaman, veriler içerisinde belirlenen alanlar Apache Lucene alt yapısının kullanımı ile indexlenmeye başlamaktadır. 

Elasticsearch tanımlı kelimenin hangi dökümanda ROW (Rest Of the World)’de yer aldığı verilerin kaydedilme sürecinde indekslemektedir. Daha sonra kelime sorgusu yapıldığında, tüm veriler üzerinde işlem yapmak yerine, daha önce oluşturulmuş olan index listesini baz alarak, sonuçları hızlı bir şekilde bulunmaktadır.

Elasticsearch Nedir? Ne İşe Yarar?

Günümüz teknoloji çağında, insanların internet kullanım sürelerinin artması, Web sitelerinde yer alan veri miktarlarının da artmasına neden oluyor. Dünya genelindeki Web sitelerinde, devasa oranlarda veriler üretilmektedir ve bunlar büyük veri (Big Data) olarak ifade edilmektedir. Big data verilerinin yüksek orandaki bölümü, daha dağınık, tek başına anlam ifade etmeyen ve yapılandırması tamamlanmamış bir halde bulunmaktadır. 

İşletmeler açısından mevcut verilerin anlamlı hale getirilmesi, kolay ve hızlı bir şekilde erişilebilir olması, analiz yapılabilmesi gerekmektedir. Verilerin işlenmesi; müşteri memnuniyeti ve sadakatinin oluşturulması, pazarlama stratejilerinin geliştirilmesi, sorunların tespit edilmesi gibi farklı bir çok açıdan önem taşımaktadır. 

Arama motorlarının pek çoğunda, bu türden dağınık, yüksek kapasitede, tek başına anlam ifade etmeyen veri toplulukları işlevsel olmamaktadır. Elasticsearch (Esnek Arama), tam bu noktada işletmelerin doğru arama ihtiyaçlarının fark edilmesi ve giderilmesi için geliştirilmiştir. Elasticsearch arama aracı, işletmelere tam da ihtiyaçları olan spesifik verileri ulaştırabilme kapasitesine sahiptir. 

Elasticsearch, Apache Lucene altyapısı üzerinde kurgulanan, Java programlama dili ile geliştirilen, metin arama moturu ve analiz aracı özelliği taşımaktadır. Lucene’nin anlık veri grupları ve dağınık sistemler içerisinde yapılan aramalarda yetersiz kalması sonucunda doğan ihtiyaçla, Elasticsearch ortaya çıkmıştır.

Elasticsearch, esnek çalışma yapısı, dağınık tüm sistemlerde gerçek zamanlı olarak veriler üzerinde işlem yapabilmesi gibi birçok becerisi ile kısa sürede popüler olmayı başarmıştır.

Elasticsearch (Esnek Arama) Avantajları Nelerdir?

Özellikle işletmelerin dijital pazarlama stratejileri için hayati önem taşıyan aramalarını mükemmel şekilde gerçekleştiren Elasticsearch’ün avantajları aşağıdaki şekilde belirtilmektedir;

  • Yüksek ölçeklenebilir ve dağınık düzenli yapılar üzerinde çalışabilme kapasitesindedir
  • Açık kaynaklı bir yazılıma sahiptir
  • Restful API (HTTP protokolü üzerinden haberleşme yetisi bulunan mimari yaklaşımı kullanan API) desteği bulunmaktadır
  • Gerçeğe eş zamanlıdır, veriler kaydedildikten hemen sonra Elasticsearch aramalarında listelenmektedir
  • Yedekleme süreçleri hızlı ve kolaydır
  • Az kaynak kullanımı ile çalışmaktadır
  • Sade bir Cluster (Kümeleme) yapısı vardır
  • İndexleme özelliği ile arama sonuçları hızlı bir şekilde iletmektedir
  • Dökümanlar JSON (JavaScript Object Notation) “Javascript Nesne Notasyonu” olarak indexlenir ve farklı programlama dillerini desteklemektedir
  • Veri tipine özel haritalama (Mapping) yapabilmektedir
  • Kurulumu hızlı ve kolaydır
  • Otomatik tamamlama özelliğine sahiptir

Elasticsearch Template Nedir? Nasıl Kullanılır?

Elasticsearch, iş dünyasında yer alan küçük ve büyük ölçekli tüm işletmelerin kullanmış olduğu, popüler bir metin (Text) arama motoru özelliği taşımaktadır. Elasticsearch işletmelere ölçekleme ve analiz de yapabilme imkanı sunmaktadır.

Arama yapılacak kelimelerin, alanların ve sonuç listelerinin belirlenmesini de sağlamaktadır. Elasticsearch birkaç saniye içerisinde veri aktarım işlemlerini tamamlamaktadır. Hızlı ve kolay kullanılır oluşu, Elasticsearch’ün tercih nedenleri arasında yer almaktadır. Elasticsearch’ün nasıl ve hangi alanlarda kullanıldığı, aşağıdaki şekilde belirtilmektedir;

  • Metin aramalarında Elasticsearch kullanımı: Özellikle bir ya da birden fazla metinlerin aramalarında kullanılmaktadır ve belirlenen kelime öbekleri ile en uygun eşleşmeyi yaratmak için doğru bir tercih olmaktadır.
  • Ürün ve müşteri arasındaki temas aramalarında Elasticsearch kullanımı: Elasticsearch, metin bazlı arama ve yapılandırılmış olan verilerin kullanımı ile daha hızlı bir şekilde müşteri / temas kayıtlarının oluşturulmasını sağlamaktadır. Elasticsearch ile arama sonuçlarından kayıtlı verilere direk ulaşılmaktadır.
  • Veri toplama işlemlerinde Elasticsearch kullanımı: Elasticsearch, arama sorgusuyla ilişkili toplanmış verilerin listesinin oluşturulmasına destek olmaktadır. Sonuç sayfasının detay bilgileri Elasticsearch ile özelleştirilmektedir.
  • Çoklu dil seçeneğinde Elasticsearch kullanımı: Elasticsearch, talep edildiği durumlarda, belirtilen dil ya da dillere entegre edilebilmektedir. Seçilen dil ile Elasticsearch optimizasyonu sağlanabilmektedir.

Elasticsearch Analyzer Nedir?

Arama yapılan kelime ya da kelime gruplarının işlenme süreçlerinde Elasticsearch Analyzer paketleri kullanılmaktadır. Yapılacak işlemlerin durumuna ya da dil yapısına göre Elasticsearch Analyzer alternatifleri bulunmaktadır. Genellikle, default (Varsayılan) olarak standart analyzer kullanılmaktadır ve index default tanımlamasına analyzer olarak alınmaktadır.

Tanımlanan alanın işlemlere tabi tutulduğu ve indexlemesinin bu doğrultuda yapıldığı anlamına gelmektedir. İşlenmemesi gereken alanlarda ise “Not analyzer” yapılması önerilmektedir, işlem dışı bırakılmasını ifade etmektedir. Default (Varsayılan) analyzer’ın ihtiyaçları karşılayıp karşılamadığının anlaşılması, alternatif analyzer seçimlerinin belirlenmesi için Analyzer API desteğinden yararlanılmaktadır. 

Elasticsearch bir alan tespit ettiği zaman, onu Full Text String (Grup kelimelerin aranmasında kullanılan terim) olarak tanımlar ve Default Standart Analyzer kullanımı ile işlemlerini gerçekleştirir. Komut çalıştırıldığı anda, kelimelerin ayrıştırılma işlemi yapılmaktadır. Elasticsearch Analyzer kullanımında, “Ülkenin” kelimesi yerine “Ülke”, “İnternetimin” kelimesi yerine “İnternet” kelimesinin indexlenmesi de komut ile belirlenmektedir.

Spesifik kelime ve kelime grupları üzerinde de yüksek performans gösteren Elasticsearch Analyzer ile çalışırken bazı kelime ya da kelime grupları istenildiği takdirde aramalardan muaf tutulmaktadır. Elasticsearch Analyzer seçimi, sonuçları doğrudan etkilemektedir. İhtiyaca uygun Elasticsearch Analyzer seçimi yaparak, en iyi sonuçları almak mümkün olmaktadır.

Elasticsearch İndex Nedir? Neleri Kapsar?

Elasticsearch, metinler (Textler) içerisinde direk arama yapmak yerine, aramalarını indeksler (Dizinler) aracılığıyla yürütmektedir. Elasticsearch İndex tanımı, beraberinde işlemlerde yer alan iki yeni kavramı ortaya koymaktadır. Bunlar; Shared ve Replica olmaktadır.

Shared: Elasticsearch arama aracı, Cluster (Kümeleme) alt yapısına sahiptir. Bu özelliği sayesinde, Big data verilerinin kaydedilmesi süreçlerinde ve yüksek sayıda trafik alındığında sistem içerisinde ölçeklendirme sağlanmaktadır. 

Cluster yapılarında node lar (Düğümler) bulunmaktadır ve her bir node üzerinde Elasticsearch işlem yapmaktadır. Node’ların özelliği birbirleri ile haberleşmeleridir. Nodeların içerisinde de Shardlar çalışmaktadır. Shardlar,  dokümanların yer aldığı en küçük birimleri ifade etmektedir. 

Node’ların içerisinde periyodik olarak çalışan Shard’lar özünde Apache Lucene (Elasticsearch alt yapısı) uygulamalarıdır ve verilerin indexlenmesinden (Dizine işlenmesinden) sorumlu tutulmaktadır. Açıklaması yapılan konu “Elasticsearch Shard Nedir?” sorusunu da yanıt vermektedir.

Replica: Elasticsearch içerisinde, Shard’ların devre dışı kalma ihtimallerine karşı geliştirilen, bir ya da daha fazla kopyasının oluşturulmasını sağlayan Replica Shard yapısı bulunmaktadır. Replica’lar, yüksek erişilebilirlik özelliği için önem taşımaktadır. Shared ve Replica kavramları, Elasticsearch mimarisi için oldukça önem taşımaktadır. 

Elasticsearch’e Ait Diğer Kavramlar

Elasticsearch Aggregation Nedir?

Aggregation, arama sonuçları ile işleşen dokümanların üzerinde veri toplanması ve toplanan verilerin analizinin çıkarılmasını sağlayan yapıları ifade etmektedir. Örneğin; spesifik bir ürün üzerinde arama yapıldığında, ürünün hangi kategorilerde yer aldığını, kaç ürün olduğunu sorgulamalardan her zaman çıkarmak mümkün olmamaktadır. Ancak Elasticsearch Aggregation ile kategori bilgisi üzerinden her türlü sorgunun gerçekleştirilmesi ve analizlerinin yapılması mümkün olmaktadır.

Elasticsearch Logstash Kibana Nedir?

Elasticsearch, uygulamalar aracılığıyla metin aramalarının yapılmasını, toplanan verilerin analizin oluşturulmasını sağlayan bir arama motoru aracıdır. Logstash, Elasticsearch ile toplanan verilerin düzenlenmesini ve anlamlı hale getirilmesini sağlayan araca verilen isimdir.

Kibana ise toplanan ve anlamlı bir hale getirilmiş olan verilerin, analizinin yapıldıktan sonra görselleştirme işlemlerinin gerçekleştirilmesinden sorumludur. “Elasticsearch ELK Nedir?” sorusunun yanıtı ise yukarıda açılımı yapılan kavramlarının kısaltması olmaktadır.

Elasticsearch Mapping Nedir?

Elasticsearch mapping, arama işlemlerinde yer alan verilerin yapısını ifade etmektedir. Veritabanını oluşturan şema olarak da bilinmektedir. Elasticsearch verilerinin hangi alanlarda oluştuğunu, bu alanların tip ve özelliklerini göstermektedir. Ayrıca, hangi alanların indexlemelere dahil edileceğini, hangi alanların Lucene’de (Elasticsearch altyapısı) tutulacağının bilgisini belirlemektedir.

Elasticsearch Entegrasyonu Nedir?

Elasticsearch ve Apache Spark (Büyük ölçekteki verilerin işlenmesi için, açık kaynaklı oluşturulan analiz motoru) Big data dünyasında kullanılan en popüler araçlar arasında bulunmaktadır.

Apache Spark ve Elasticsearch entegrasyonu ile muazzam boyutta işler gerçekleştirmek mümkün olmaktadır. Apache Spark analiz motoru ile Big data verileri işlenirken, Elasticsearch ile de bu verileri arayabilmek, analiz edebilmek ve görselleştirmeleri sağlamak mümkün olmaktadır. Aynı zamanda depolama seçenekleri de bulunmaktadır. 

Domain Sorgulama
guest
0 Yorum
Inline Feedbacks
View all comments