Elasticsearch #1 — Derinlemesine Bir Giriş

Cenker Kumlucalı
2 min readJul 25, 2023

--

Merhaba! Bugünkü konumuz, arama ve analitik dünyasında oldukça popüler olan Elasticsearch. Bu makale serisinde, Elasticsearch’ın ne olduğunu, nasıl çalıştığını ve nasıl kullanıldığını detaylarıyla anlatacağız. Bu ilk bölümde, Elasticsearch’ın temel kavramlarını ele alacağız ve bir sonraki bölümde daha fazla detay ve örneklerle geri döneceğiz.

Elasticsearch Nedir?

Elasticsearch, ölçeklenebilir ve gerçek zamanlı bir arama ve analitik motorudur. Bu, onun çok büyük veri setleri üzerinde hızlı aramalar ve karmaşık analizler yapabilme yeteneği sağlar. Java tabanlı olan Elasticsearch, Apache Lucene üzerine inşa edilmiştir ve birçok dilin client kütüphanesini destekler, örneğin .NET, Java, Python, PHP ve daha fazlası.

Elasticsearch Nasıl Çalışır?

Elasticsearch, belgeleri (genellikle JSON formatında) indeksler ve bu belgeleri kullanıcının ihtiyaçlarına göre sorgular.

Indeks, bir Elasticsearch veri tabanında bir grup belgeyi (genellikle aynı türden olan) temsil eder. Örneğin, bir e-ticaret uygulamasında products adında bir indeks olabilir ve bu indeks, her bir ürünü temsil eden belgeleri içerir.

Elasticsearch’ın özgü gücü, indekslenmiş belgeler üzerinde karmaşık aramalar ve analizler yapabilme yeteneğidir. Bir sorgu, belirli bir dizi koşulu karşılayan belgeleri bulmak için bir indeks üzerinde çalıştırılır.

Elasticsearch Kurulumu

Elasticsearch’ı kurmak oldukça basittir. Resmi Elasticsearch web sitesinden Elasticsearch’ın en son sürümünü indirebilir ve indirilen zip dosyasını çıkarabilirsiniz. Ardından, komut satırından Elasticsearch dizinine gidip bin/elasticsearch (veya bin\elasticsearch.bat Windows'ta) komutunu çalıştırabilirsiniz.

Elasticsearch ile Basit Bir Örnek

Elasticsearch’ın nasıl çalıştığını daha iyi anlamak için basit bir örneğe bakalım. Bu örnekte, products adında bir indeks oluşturacağız ve bu indekse birkaç belge ekleyeceğiz.

İlk olarak, Elasticsearch sunucunuzun çalıştığından emin olun ve aşağıdaki HTTP PUT isteğini gönderin:

PUT /products
{
"mappings": {
"properties": {
"name": { "type": "text" },
"price": { "type": "double" },
"in_stock": { "type": "boolean" }
}
}
}

Bu istek, products adında bir indeks oluşturur ve her belgenin üç özelliği olduğunu belirtir: name (text türünde), price (double türünde) ve in_stock (boolean türünde).

Artık products indeksine belge ekleyebiliriz. Aşağıdaki HTTP POST isteğini gönderin:

POST /products/_doc
{
"name": "Mavi T-shirt",
"price": 19.99,
"in_stock": true
}

Bu istek, products indeksine yeni bir belge ekler. Belge, bir mavi tişörtü temsil eder ve fiyatı 19.99 birim ve stokta olduğunu belirtir.

Son olarak, products indeksini sorgulayabiliriz. Aşağıdaki HTTP GET isteğini gönderin:

GET /products/_search
{
"query": { "match": { "name": "Mavi T-shirt" } }
}

Bu istek, name özelliği "Mavi T-shirt" olan tüm belgeleri döndürür.

Sonuç

Elasticsearch, veri tabanlarının standart yeteneklerinin ötesine geçerek büyük veri setleri üzerinde hızlı ve esnek aramalar sağlar. Ayrıca, Elasticsearch’in arama yeteneklerinin ötesinde, Elasticsearch’in kendi başına bir NoSQL veritabanı olarak kullanılabileceğini de unutmamak önemlidir.

Bu ilk bölümde, Elasticsearch’ın temel kavramlarını ve işleyişini anlattık. Bir sonraki bölümde, daha karmaşık sorgular, indeksleme stratejileri ve performans optimizasyonu gibi konuları ele alacağız.

Elasticsearch, büyük veri tabanlarında arama ve analiz gerektiren uygulamalar için mükemmel bir çözümdür. Bu makale serisini takip ederek, Elasticsearch’ın gücünü keşfetmeye devam edeceğiz. Bir sonraki makalede görüşmek üzere! Hoşça kalın ve mutlu kodlamalar!

--

--

No responses yet