[ElasticSearch] Fuzzy 유사값 검색 (검색시 오타 보정하기)

Woong·2023년 2월 24일
0

ElasticSearch

목록 보기
15/28

개요

  • ElasticSearch 에서는 오타를 보정하기 위한 방법이 존재한다.
    • fuzzy query를 사용하는 방법
    • match query 에 fuzziness 를 추가하는 방법
  • 유사한 값을 검색
    • 유사도 계산에는 잘 알려진 Levenshtein distance(편집거리 알고리즘) 를 사용한다.

match 쿼리에 fuzziness 설정

  • Levenshtein Edit Distance 으로 허용될 거리값
    • 0 : 일치해야만 검색 (=오타 보정되지 않음)
    • AUTO : 문자열 길이에 따라 자동으로 정해진다. (권장)
POST movie_search/_search
{
  "query" : {
    "match": {
      "moviename": {
        "query": "Fli High",
        "fuzziness": 1
      }
    }
  }
}

fuzzy query

  • 검색 쿼리를 fuzzy query 로 실행할 경우
GET /_search
{
  "query": {
    "fuzzy": {
      "user.id": {
        "value": "ki",
        "fuzziness": "AUTO",
      }
    }
  }
}

reference

0개의 댓글

관련 채용 정보