https://esbook.kimjmin.net/06-text-analysis/6.7-stemming
사용자들은 검색을 진행할때는 단어의 굴절이나 변형에 상관없이 검색이 진행되길 바란다. 이를 위해선 각각의 텀에 있는 단어들의 기본형태인 어간을 추출하는 과정을 진행한다.
이 과정을 보통 형태소 분석이라고 하며, 영어로는 stemming이라고 함. 형태소 분석을 하는 도구를 형태소 분석기, 영어로는 stemmer라고 한다.
2000년 경에 마틴 포터 박사가 개발해 무료로 공개한 형태소 분석 알고리즘임. -ing, -s 등을 제거해 문장에 쓰인 단어들을 기보 ㄴ형태로 변경함. Elasticsearch에서 Snowball은 애널라이저, 토크나이저, 토큰 필터 각각에 모두 정의되어 있으니 사용하면 된다.
https://www.elastic.co/docs/reference/elasticsearch/plugins/analysis-nori
한글은 복합어, 합성어 등이 많아 형태소 분석을 위해선 한글 형태소 사전이 필요하다.
오픈 소스 커뮤니티에서 개발되어서 Elasticsearch에서 사용가능한 한글 형태소 분석기는 다음과 같은 것들이 있다.
https://github.com/HowookJeong/elasticsearch-analysis-arirang
https://bitbucket.org/eunjeon/seunjeon/src/master/