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ı

Sql mükerrer kayıtları silmek