자동완성 서비스를 구축하다가 이론적으로만 알고 있지만 실제로 발생한 이슈케이스에 대해 공유하고자 한다.
Elasticsearch에서 analyzer를 설정할 때는, 다음과 같은 단계를 거치게 된다.
실질적인 분석이 시작되기 전에 수행되어지는 전처리
단계로서, 특정 문자를 지우거나, 변경하는 작업을 진행한다. ES내부에서 지원하는 필터는 다음과 같다.
문장을 Term
단위로 분석하여 분리한다. 아리랑 분석기, 노리, 은전한닢등이 해당 부분에서 처리된다. 종류가 많아서 Skip
분석 이후 수행되는 후처리
단계로서, 분해된 Term들에 대해 추가적인 처리를 한다. 해당 처리는 색인에서 처리되므로 화면에 보여지는 값과는 다르다. ES내부에서 지원하는 필터는 다음과 같다.