Ana içeriğe geç

Elasticsearch

Okunuşu
ilastik sörç
Güncellendi 2 dk okuma

Bu sayfayı paylaşın

Bağlantıyı gönderin, tanımı bağlantısıyla birlikte alıntılayın ya da kendi sitenizde bir kart olarak gösterin.

https://softwaredictionary.org/tr/terimler/elasticsearch

Kısaca

Elasticsearch, JSON belgelerini indeksleyip büyük veri üzerinde hızlı tam metin arama, filtreleme ve toplama yapan dağıtık bir arama ve analiz motorudur.

Elasticsearch nedir?

Elasticsearch ilk olarak 2010'da Shay Banon tarafından yayımlandı ve bir arama kütüphanesi olan Apache Lucene üzerine kuruludur. Ona ürünler, makaleler ya da log satırları gibi JSON belgeleri gönderirsiniz; o da ters indeks (inverted index) kurar: her kelimeden o kelimeyi içeren belgelere giden bir harita. Milyonlarca belge arasından eşleşenleri milisaniyeler içinde bulmasını sağlayan şey bu indekstir.

Aramalar birebir eşleşmenin ötesine geçer. Elasticsearch metni kelimelere ayırır, büyük-küçük harfi ve kelime eklerini yok sayabilir, sonuçları alakaya göre sıralar, yazım hatalarını tolere eder ve eşleşen kısımları vurgular. Ayrıca toplama da yapar; örneğin ülke başına siparişleri sayar ya da dakika başına hata oranlarını gösterir. Bu yüzden aramanın yanı sıra analiz için de kullanılır.

Veri, bir kümedeki (cluster) düğümlere dağıtılmış shard'lara bölünür ve güvenlik için kopyaları (replica) tutulur; böylece makine eklenerek ölçeklenir. Çoğu zaman eskiden ELK adı verilen Elastic Stack'in bir parçası olarak kullanılır: Logstash ya da Beats logları toplar, Elasticsearch onları saklayıp indeksler, Kibana da panolarda gösterir.

Sık yapılan bir yanlış, Elasticsearch'ün ana veritabanı olması gerektiği düşüncesidir. Arama hızı için tutarlılıktan bir miktar ödün verdiğinden, genellikle ana veritabanından ya da bir log hattından beslenen ikincil bir depodur. Lisansı 2021'de değişti; bu da AWS'nin büyük ölçüde aynı şekilde çalışan bir çatallama olan OpenSearch'ü başlatmasına yol açtı.

Önemli noktalar

  • Elasticsearch, Lucene üzerine kurulu dağıtık bir arama ve analiz motorudur.
  • Ters indeks, hızlı tam metin arama için kelimeleri belgelere eşler.
  • Alakaya göre sıralar, yazım hatalarını tolere eder ve toplamalar hesaplar.
  • Veri bir küme genelinde shard'lara bölünür ve kopyalanır.
  • Genellikle bir ana veritabanının yerini almaz, onu tamamlar.

Örnek

HTTP üzerinden bir belgeyi indeksleyip aramakbash
# Add a document to the "products" index
curl -X POST "localhost:9200/products/_doc" -H "Content-Type: application/json" -d '
{ "name": "Wireless keyboard", "price": 49 }'

# Full-text search; "keybord" still matches thanks to fuzziness
curl -X GET "localhost:9200/products/_search" -H "Content-Type: application/json" -d '
{ "query": { "match": { "name": { "query": "keybord", "fuzziness": "AUTO" } } } }'

Sık sorulan sorular

Elasticsearch bir veritabanı mı?

Veriyi saklayıp geri getirdiği için veritabanı denebilir; ama bir arama ve analiz motoru olarak tasarlanmıştır ve genellikle asıl doğru kaynak olarak kalan bir birincil veritabanının yanında tutulur.

ELK yığını nedir?

ELK; Elasticsearch, Logstash ve Kibana'nın kısaltmasıdır: Logstash logları toplayıp işler, Elasticsearch onları indeksler, Kibana da görselleştirir. Beats eklenince adı artık Elastic Stack oldu.

OpenSearch nedir?

OpenSearch, Elastic lisansını değiştirdikten sonra AWS'nin 2021'de başlattığı, Elasticsearch'ün açık kaynaklı bir çatallamasıdır. Çok benzer şekilde çalışır ve bugün Linux Foundation çatısı altında sürdürülür.

İlgili sayfalar

Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin

Daha fazla

Ayarlar