Elastic Search - 분석기

이한주·2023년 2월 28일
0

분석기

엘라스틱서치는 전문 검색을 지원하기 위해 역인덱싱을 사용한다.
전문 검색은 문자열에서 부분 검색을 수행하는 것이다.
엘라스틱서치는 캐릭터 필터, 토크나이저, 토큰 필터로 구성되어 있는 분석기 모듈을 가진다.

  • 캐릭터 필터
    • 입력받은 문자열을 변경하거나 불필요한 문자들을 제거한다.
  • 토크나이저
    • 문자열을 토큰으로 분리한다.
    • 분리할 때 토큰의 순서나 시작, 끝 위치도 기록한다.
  • 토큰 필터
    • 분리된 토큰들의 필터 작업을 한다.
    • 대소문자 구분, 형태소 분석 등의 작업이 가능하다.

분석기에는 하나의 토크나이저가 반드시 포함돼야 한다.

자주 사용하는 분석기는 다음과 같다.

토크나이저

분석기는 반드시 하나의 토크나이저를 포함한다.
토크나이저는 문자열을 분리해 토큰화하는 역할을 한다.
자주 쓰이는 토크나이저는 다음과 같다.

다음과 같이 토크나이저를 테스트할 수 있다.

POST _analyze
{
  "tokenizer": "uax_url_email",
  "text": "email: elastic@elk.com"
}

필터

분석기는 하나의 토크나이저와 다수의 필터로 조합된다.
필터를 통해 세부적인 작업이 가능하다.
필터는 단독으로 사용할 수 없고 반드시 토크나이저가 있어야 한다.

캐릭터 필터

캐릭터 필터는 토크나이저 전에 위치하며 문자들을 전처리하는 역할을 한다.

  • HTML에서   문자를 공백으로 바꾸는 작업 등을 캐릭터 필터에서 진행하면 좋다.

엘라스틱서치가 제공하는 대부분의 분석기는 캐릭터 필터가 포함돼 있지 않다.
캐릭터 필터를 사용하기 위해서는 커스텀 분석기를 만들어 사용하는게 좋다.

토큰 필터

토큰 필터는 토크나이저에 의해 토큰화되어 있는 문자들에 필터를 적용한다.
다음은 uppercase라는 토큰 필터를 적용하는 예다.

POST _analyze
{
  "tokenizer": "standard",
  "filter": ["uppercase"],
  "text": "The 10 most living"
}

0개의 댓글