[Elasticsearch] ngram 사용법

김민재·2025년 3월 12일

Elasticsearch

목록 보기
9/13

🥢 ngram

  • 기본적으로 elasticsearch에 저장되어있다.

키바나 Dev Tools

  • 내 인덱스에 ngram 설정
PUT /index
{
  "settings": {
    "analysis": {
      "tokenizer": {
        "ngram_tokenizer": {
          "type": "edge_ngram",      // Edge N-gram tokenizer 사용
          "min_gram": 2,            // 최소 2글자
          "max_gram": 5             // 최대 5글자
        }
      },
      "analyzer": {
        "ngram_analyzer": {
          "type": "custom",
          "tokenizer": "ngram_tokenizer",   // N-gram tokenizer 사용
          "filter": ["lowercase"]           // 소문자 필터 적용 (선택 사항)
        }
      }
    }
  },
  "mappings": {
    "properties": {
      "flield": {
        "type": "text",
        "analyzer": "ngram_analyzer"  // N-gram 분석기 적용
      },
        "flield": {
        "type": "text",
        "analyzer": "ngram_analyzer"  
      }
    }
  }
}
  • 실행 코드
POST /one/_analyze
{
  "text": "지드래곤",
  "analyzer": "ngram_analyzer"
}
  • 반환 코드
{
  "tokens": [
    {
      "token": "지드",
      "start_offset": 0,
      "end_offset": 2,
      "type": "word",
      "position": 0
    },
    {
      "token": "지드래",
      "start_offset": 0,
      "end_offset": 3,
      "type": "word",
      "position": 1
    },
    {
      "token": "지드래곤",
      "start_offset": 0,
      "end_offset": 4,
      "type": "word",
      "position": 2
    }
  ]
}
profile
개발 경험치 쌓는 곳

0개의 댓글