본문 바로가기

Computer/Study

엘라스틱서치 실무가이드(3-2)

3.4] 엘라스틱서치 분석기

 

3.4.1] 텍스트 분석 개요

: 루씬을 기반으로 구축된 텍스트 기반 검색엔진으로 인덱스의 정보가 어떻게 저장할지 분석하는 방법으로 일단 기본 Standard 분석기의 처리 방식을 확인할 수 있으며 _analyze API를 통해 분석 결과를 확인 할 수 있으며 각 분석기의 원칙에 따라서 색인되어 저장된다.

 

3.4.2] 역색인 구조

  • 모든 문서가 가지는 단어의 고유 단어 목록
  • 해당 단어가 어떤 문서에 속해 있는지에 대한 정보
  • 전체 문서에 각 단어가 몇개 들어있는지에 대한 정보
  • 하나의 문서에 단어가 몇번씩 출현했는지에 대한 빈도

3.4.3] 분석기 구조

  • 문장을 특정한 규칙에 의해 수정 - Character Fiter
  • 수정한 문장을 개별 토큰으로 분리 - Tokenizer Filter
  • 개별 토큰을 특정한 규칙에 의해 변경 - Token Filter

  1. Character Filter를 통해 특정 단어들을 제거(ReplaceAll)
  2. 텍스트를 어떻게 나눌껏인지를 정의하고 저개별 토큰으로 분리
  3. 토큰화된 단어를 필터링을통해 사용자가 원하는 토큰으로 변환(불필요한 단어 제거, 영문자 소문자화 등)

3.4.3.1] 분석기 사용법

▶'분석기'를 이용한 분석

▶'필드'를 이용한 분석

▶'색인'과 '검색'시 분석기를 각각 설정

 

3.4.3.2] 대표적인 분석기

▶Standard Analyzer

▶Whitespace Analyzer

▶Keyword Analyzer

 

3.4.4] 전처리 필터

: 앞에서 말한거와 같이 토큰 분리 작업 전 데이터 정제를 위한 필터이나 요즘은 토크나이저 내부에서도 가능하기 떄문에 상대적인 활용도가 다른다고 함.

 

  • Html strip char 필터 : HTML을 제거 하는 전처리 필터

3.4.5]토크나이저 필터

: 분석기를 구성하는 가장 핵심 구성요소로 전처리를 통해 넘어온 텍스트를 토크나이저 특성에 맞게 적절히 분해.

  • Standard 토크나이저 : 기호를 만나면 토큰으로 나눔
  • Whitespace 토크나이저 : 공백을 만나면 텍스트를 토큰화
  • Ngram 토크나이저 : 한글자씩 토큰화 하며 특정무잔를 지정할 수 있음.
  • Edge Ngram 토크나이저 : 지정된 문자 목록 중 하나를 만날 때 
  • Keyword 토크나이저 : 텍스트를 하나의 토큰으로 만든다.

3.4.6]토큰 필터

: 토크나이저에서분리된 토큰들을 변형하거나 추가, 삭제할 때 사용하는 필터로, 토크나이저에서 배혈형태로토큰이 전달된다.