Elasticsearch Analyzer

JunMyung Lee·2023년 2월 28일
0

Elasticsearch

목록 보기
12/37

자동완성 서비스를 구축하다가 이론적으로만 알고 있지만 실제로 발생한 이슈케이스에 대해 공유하고자 한다.

Analyzer

Elasticsearch에서 analyzer를 설정할 때는, 다음과 같은 단계를 거치게 된다.

Character Filter (Optional)

실질적인 분석이 시작되기 전에 수행되어지는 전처리 단계로서, 특정 문자를 지우거나, 변경하는 작업을 진행한다. ES내부에서 지원하는 필터는 다음과 같다.

  • HTML Strip Character Filter
    • HTML요소를 제거
  • Mapping Character Filter
    • 지정된 문자열의 모든 항목을 지정된 대체 문자로 변경
  • Pattern Replace Character Filter
    • 정규 표현식과 일치하는 모든 문자를 지정된 대체 문자로 변경

Tokenizer

문장을 Term 단위로 분석하여 분리한다. 아리랑 분석기, 노리, 은전한닢등이 해당 부분에서 처리된다. 종류가 많아서 Skip

Token Filter

분석 이후 수행되는 후처리 단계로서, 분해된 Term들에 대해 추가적인 처리를 한다. 해당 처리는 색인에서 처리되므로 화면에 보여지는 값과는 다르다. ES내부에서 지원하는 필터는 다음과 같다.

  • Lowercase Token Filter
    • Term을 소문자로 변환
  • Uppercase Token Filter
    • Term을 대문자로 변환
  • Trim Token Filter
    • Term의 양끝 공백을 제거
  • Stop Token Filter
    • Term의 불용어 제거
  • Synonym Token Filter
    • Term의 동의어 처리
  • Reverse Token Filter
    • Term의 역순 처리

0개의 댓글