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

Bu blogdaki popüler yayınlar

c# E-fatura görüntüleme aracı

Kablo Modem Netmaster CBW-700V VPN Ayarları

Windows Run commands