SH380 Logo
2025-08-30

Elasticsearch 재설치 후 데이터 색인 실패 문제

#Elasticsearch#infra#Docker#Troubleshooting

elasticsearch-logo

문제 원인

GET /boards/_search
{
  "query": {
    "match": {
      "title": "배드민턴"
    }
  }
}

// 결과
{
  "took": 3,
  "timed_out": false,
  "_shards": {
    "total": 1,
    "successful": 1,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": {
      "value": 6,
      "relation": "eq"
    },
    "max_score": 1.5323509,
    "hits": [
      {
        "_index": "boards",
        "_id": "1",
        "_score": 1.5323509,
        "_source": {
        	...

---> 기존 인덱스와 문서를 삭제하고 새로 매핑/세팅을 적용해서 재색인

1. DELETE /boards
2. PUT /boards
	{
  		"settings": {
    	"analysis": {
      	"filter": {
        	"edge_ngram_filter": {
          	"type": "edge_ngram",
          	"min_gram": 2,
          	"max_gram": 20
        	}
      	},
      	"analyzer": {
        "korean_edge_ngram_analyzer": {
        ....
{
  "error": {
    "root_cause": [
      {
        "type": "illegal_argument_exception",
        "reason": "Custom Analyzer [korean_edge_ngram_analyzer] failed to find tokenizer under name [nori_tokenizer]"
      }
    ],
    "type": "illegal_argument_exception",
    "reason": "Custom Analyzer [korean_edge_ngram_analyzer] failed to find tokenizer under name [nori_tokenizer]"
  },
  "status": 400
}

---> nori_tokenizer를 찾을 수 없어서 analyzer를 만들 수 없다

해결 방법

docker exec -it es01 bin/elasticsearch-plugin install analysis-nori
docker restart es01

elastic search 컨테이너 중지 -> nori_tokenizer 설치 -> elastic search 컨테이너 재시작

단, 이 방식은 컨테이너 재생성 시 유지되지 않는다.

목록으로 돌아가기