Tek Node İçin Elasticsearch Yapılandırması
Eğer tek bir Elasticsearch node kullanacaksan, aşağıdaki ayarlarla sistemi en iyi şekilde yapılandırabilirsin.
1. Tek Node İçin Elasticsearch Yapılandırması
📌 Amaç:
- HTML belgelerinde full-text search yapacaksın.
- Tek bir sunucu/konteyner kullanacaksın.
📂 elasticsearch.yml
(Tek Node için yapılandırma)
cluster.name: my-cluster
node.name: my-single-node
node.roles: [ master, data, ingest ] # Tüm roller tek bir node üzerinde olacak
network.host: 0.0.0.0 # Tüm IP'lerden erişime izin verir
http.port: 9200
discovery.type: single-node # Tek node çalıştırmak için gerekli
bootstrap.memory_lock: true # Bellek performansını artırmak için
✅ Ne olur?
- Tek sunucuda Elasticsearch çalışır.
- Master, Data ve Ingest node rollerini üstlenir.
- Ekstra node’lar olmadığı için
discovery.type: single-node
kullanılır.
2. Elasticsearch Docker ile Kurulum (Tek Node İçin)
Eğer Elasticsearch’i Docker ile çalıştırmak istiyorsan, aşağıdaki docker-compose.yml
dosyasını kullanabilirsin:
📂 docker-compose.yml
version: '3'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch-oss:7.10.2
container_name: elasticsearch
environment:
- discovery.type=single-node
- ES_JAVA_OPTS=-Xms2g -Xmx2g
ports:
- "9200:9200"
- "9300:9300"
volumes:
- esdata:/usr/share/elasticsearch/data
ulimits:
memlock:
soft: -1
hard: -1
volumes:
esdata:
driver: local
✅ Bu komutları çalıştırarak başlat:
docker-compose up -d
- Elasticsearch çalışır duruma gelir.
- Adres:
http://localhost:9200
3. Bellek ve Performans Ayarları (Önemli!)
Tek bir node çalıştıracağın için bellek ayarlarını doğru yapmalısın.
📌 En iyi performans için Elasticsearch’e toplam RAM’in %50’sini ayır (Maksimum 32 GB).
📂 JVM Heap Bellek Ayarı (jvm.options
)
-Xms2g
-Xmx2g
Bu, Elasticsearch’in en az 2GB, en fazla 2GB RAM kullanmasını sağlar. Eğer 8GB RAM’in varsa, bunu şu şekilde ayarlayabilirsin:
-Xms4g
-Xmx4g
✅ Docker kullanıyorsan, docker-compose.yml
içindeki şu satırları güncelle:
environment:
- ES_JAVA_OPTS=-Xms4g -Xmx4g
4. Shard ve Replica Ayarları (Tek Node İçin Optimize Edilmiş)
Tek node olduğu için Replica (yedekleme) kullanamazsın.
✅ Index ayarlarını şu şekilde yap:
PUT /html_index/_settings
{
"index": {
"number_of_shards": 3,
"number_of_replicas": 0 # Tek node olduğu için yedekleme olmaz
}
}
📌 Neden?
number_of_shards: 3
→ Verileri 3 parçaya böler, sorgular hızlanır.number_of_replicas: 0
→ Yedekleme yok çünkü tek node var.
5. HTML İçeriğini Elasticsearch’e Kaydetme (Örnek)
HTML belgelerini Elasticsearch’e eklemek için şu API çağrısını yapabilirsin:
PUT /html_index/_doc/1
{
"title": "Örnek HTML Belgesi",
"content": "<html><body><h1>Merhaba Dünya</h1><p>Bu bir test belgesidir.</p></body></html>",
"url": "https://ornek.com/belge1.html"
}
✅ Elasticsearch bu içeriği full-text search ile indeksler.
🔍 Arama yapmak için:
GET /html_index/_search
{
"query": {
"match": {
"content": "test belgesidir"
}
}
}
Sonuç ve Özet
✅ Tek Node Elasticsearch kurulumu tamamlandı.
✅ Docker ile Elasticsearch çalıştırıldı.
✅ Bellek ve performans ayarları yapıldı.
✅ HTML içerik ekleme ve arama yapma işlemi test edildi.
Yorumlar