Elasticsearch, dağıtık, RESTful bir arama ve analiz motorudur. Büyük veri kümeleri üzerinde hızlı ve ilgili arama sonuçları sağlamak üzere tasarlanmıştır. Gelişmiş tam metin arama yeteneklerinin yanı sıra, veri analizi ve görselleştirme için güçlü toplama (aggregation) özelliklerine sahiptir.
Neden Elasticsearch Kullanılmalı?
Elasticsearch, log analizi, e-ticaret siteleri için ürün araması, güvenlik izleme ve iş zekası uygulamaları gibi birçok alanda yaygın olarak kullanılmaktadır. Genellikle ELK Stack'in (Elasticsearch, Logstash, Kibana) merkezi bileşeni olarak bilinir.
Temel Kavramlar:
Elasticsearch'te veriler index adı verilen mantıksal gruplar halinde depolanır. Her index, JSON formatında document adı verilen bir veya daha fazla kayıttan oluşur. Ölçeklenebilirlik ve hata toleransı için index'ler shard adı verilen parçalara ayrılır ve bu shard'ların kopyaları (replica) farklı düğümlerde tutulabilir.
Basit Bir Arama Örneği (Kavramsal):
Bu arama, 'urunler' indeksinde 'aciklama' alanında 'akıllı telefon' kelimesi geçen tüm belgeleri bulacaktır. Elasticsearch'in güçlü API'leri ve zengin sorgu dili sayesinde karmaşık analizler ve aramalar kolayca yapılabilir.
Neden Elasticsearch Kullanılmalı?
- Hız: Milyarlarca belge arasında milisaniyeler içinde arama yapabilme.
- Ölçeklenebilirlik: Yatay olarak kolayca ölçeklenebilir, terabaytlarca veriyi işleyebilir.
- Esneklik: Yapılandırılmış, yapılandırılmamış ve yarı yapılandırılmış verilerle çalışabilir.
- Gerçek Zamanlıya Yakın Arama: Veri eklendikten saniyeler sonra aranabilir hale gelir.
Elasticsearch, log analizi, e-ticaret siteleri için ürün araması, güvenlik izleme ve iş zekası uygulamaları gibi birçok alanda yaygın olarak kullanılmaktadır. Genellikle ELK Stack'in (Elasticsearch, Logstash, Kibana) merkezi bileşeni olarak bilinir.
Temel Kavramlar:
Elasticsearch'te veriler index adı verilen mantıksal gruplar halinde depolanır. Her index, JSON formatında document adı verilen bir veya daha fazla kayıttan oluşur. Ölçeklenebilirlik ve hata toleransı için index'ler shard adı verilen parçalara ayrılır ve bu shard'ların kopyaları (replica) farklı düğümlerde tutulabilir.
Basit Bir Arama Örneği (Kavramsal):
Kod:
GET /urunler/_search
{
"query": {
"match": {
"aciklama": "akıllı telefon"
}
}
}
Bu arama, 'urunler' indeksinde 'aciklama' alanında 'akıllı telefon' kelimesi geçen tüm belgeleri bulacaktır. Elasticsearch'in güçlü API'leri ve zengin sorgu dili sayesinde karmaşık analizler ve aramalar kolayca yapılabilir.