엘라스틱에서는 filter 항목이 존재한다.
nori 분석기가 텍스트를 분석하고, 검색에 굳이 필요없는 품사들을 버리는 목록이다.
"filter": {
"nori_posfilter": {
"type": "nori_part_of_speech",
"stoptags": [
"E", "IC", "J", "MAG", "MM", "SP", "SSC", "SSO",
"SC", "SE", "XPN", "XSA", "XSN", "XSV", "UNA", "NA", "VSV"
]
}
}
영문자로 구성된 약어들로 품사를 정의하는데 구분은 다음과 같다.
문법적 기능어
문법적 관계를 나타내는 기준이다.
J(Josa, 조사)
은, 는, 이, 가, 을, 를, 에, 에서 등 명사 뒤에 붙는 말이다.
예를들어 감자는, 감자가 라는 문장에서 감자만 찾고 싶은 경우,
조사를 지워야 "감자" 라는 핵심만 남는다.
E(Eomi, 어미)
-다, -고, -니, -어서 등 용언(동사/형용사)의 끝부분이다.
감자를 볶고, 볶으니, 볶아서 에서 어미를 버려야
볶다(볶)이라는 행위의 본질만 남는 것이다.
수식언 및 감탄사(꾸며주는 말)
문장에 맛을 살려주지만, 검색에는 도움 안되는 경우 제거한다.
MAG(General Adverb, 일반 부사)
매우, 빨리, 잘, 몹시 등이 해당한다.
"매우 맛있는 감자"를 검색 할 때, 매우의 중요도는 낮다.
"맛있는"과 "감자"가 중요할 떄 사용한다.
MM(Determiner, 관형사)
새, 헌, 이, 그, 저 등등
"이 감자"나 "저 감자"나 본질은 "감자"다.
구체적인 지시어가 필요 없는 경우 제거한다.
IC(Interjection, 감탄사)
아이고!, 어머!, 와! 등
감탄사 필요한거 아니면 의미없다.
접사(단어의 일부)
접사를 제거한다는 것은 단어를 좀더 원형에 가깝게 쪼갠다는 것이다.
XPN(Noun Prefix, 체언 접두사)
햇-(햇감자), 풋-(풋감자) 등의 접두사를 의미한다.
다만 접사를 제거하면 부가적인 특성(햇감자)을 잃을 수 있기 때문에 주의해야한다.
XSN(Noun Suffix, 명사 파생 접미사)
-님, -들, -쯤 등
XSV(Verb Suffix, 동사 파생 접미사) / XSA(Adjective Suffix, 형용사 파생 접미사)
-하(사랑하다), -되(건설되다.,) -스럽(사랑스럽다) 등 사용하기 복잡한 형용사를 제거하는데 사용해,
어근 중심으로 인덱싱 하는 경우 사용한다.
기호 및 분석 불가능/기타
검색에 도움 안되는 특수문자나 분석기가 인식하지 못한 단어들을 의미한다
기호류: SP (공백), SSC (닫는 괄호), SSO (여는 괄호), SC (구분자/쉼표), SE (줄임표 ...).
분석 불가/미상: UNA (Unknown), NA (Unknown), VSV (Unknown Verb 등 미상 태그).
등으로 구분되서
분석기가 "이게 뭔지 모르겠다" 라고 판단하는 것들을 제외하는 경우다.
위에꺼 다 적용하면?
"아이고! 정말 맛있는 햇감자를 물에 삶아서 드세요."
위 단어는 최종적으로 아래 인덱스로 분류된다.
[맛있], [감자], [물], [삶], [드]