본문 바로가기

Elasticsearch (ELK)/Elasticsearch

8-1. Settings & Mappings - Settings

실제 Settings의 설정 값은 대부분 "Settings" -> "Index" 아래에 들어가 있으나

Settings에 입력을 할때 Index를 넣어도 생략해도 된다(아니면 . 을 이용해도 된다).

 

// Basic
PUT my_index
{
  "settings": {
    "index": {
      "number_of_shards": 3,
      "number_of_replicas": 1
    }
  }
}

// my_index 인덱스 생성 - 마침표 . 으로 하위 값 지정
PUT my_index
{
  "settings": {
    "index.number_of_shards": 3,
    "index.number_of_replicas": 1
  }
}

// my_index 인덱스 생성 - index 생략
PUT my_index
{
  "settings": {
    "number_of_shards": 3,
    "number_of_replicas": 1
  }
}

 

number_of_shards : 생성되면 변경 불가능하다(새로 지정해야 된다면 새로 인덱스를 정의하고 재색인해야 된다).

number_of_replicas : 생성 후 변경 가능

// my_index 인덱스의 number_of_replicas 값 변경
PUT my_index/_settings
{
  "number_of_replicas": 2
}

refresh_interval : 세그먼트가 만들어지는 리프레시 타임을 설정 (Default : 1s)

Analyzer, Tokenizer, Filter (Analysis) : 자세한 내용은 Chapter 7을 참고하자. 

추가적으로 생성된 Analysis를 변경 하는것은 불가능하다. 변경을 하기 위해서는 해당 인덱스를 Close처리하고 추가해줘야 한다.

// 기본 생성
PUT my_index
{
  "settings": {
    "analysis": {
      "analyzer": {
        "my_analyzer": {
          "type": "custom",
          "char_flter": [ "...", "..." ... ]
          "tokenizer": "...",
          "filter": [ "...", "..." ... ]
        }
      },
      "char_filter":{
        "my_char_filter":{
          "type": "…"
          ... 
        }
      }
      "tokenizer": {
        "my_tokenizer":{
          "type": "…"
          ...
        }
      },
      "filter": {
        "my_token_filter": {
          "type": "…"
          ...
        }
      }
    }
  }
}

// Close하고 Analysis 재설정 후 Open
POST /twitter/_close

PUT /twitter/_settings
{
  "analysis" : {
    "analyzer":{
      "content":{
        "type":"custom",
        "tokenizer":"whitespace"
      }
    }
  }
}

POST /twitter/_open