분석기 구조

원본 보기

분석기 구조

분석기는 내장이든 사용자 정의든 문자 필터, 토크나이저, 토큰 필터라는 세 가지 하위 구성 요소를 담은 패키지입니다.

내장 분석기는 이러한 구성 요소를 미리 조합해 다양한 언어와 텍스트 유형에 적합한 분석기로 제공합니다. Elasticsearch는 각 구성 요소를 개별적으로도 노출하므로, 이를 조합해 새로운 custom 분석기를 정의할 수 있습니다.

문자 필터는 원본 텍스트를 문자 스트림으로 받아 문자를 추가, 제거, 변경하는 방식으로 스트림을 변환할 수 있습니다. 예를 들어 문자 필터를 사용해 힌두-아라비아 숫자(٠‎١٢٣٤٥٦٧٨‎٩‎)를 아라비아-라틴 숫자(0123456789)로 변환하거나, 스트림에서 <b> 같은 HTML 요소를 제거할 수 있습니다.

분석기는 문자 필터0개 이상 가질 수 있으며, 순서대로 적용됩니다.

토크나이저는 문자 스트림을 받아 개별 토큰(보통 개별 단어)으로 분해한 뒤 토큰 스트림을 출력합니다. 예를 들어 whitespace 토크나이저는 공백이 나올 때마다 텍스트를 토큰으로 나눕니다. 이 토크나이저는 "Quick brown fox!" 텍스트를 [Quick, brown, fox!] 용어로 변환합니다.

토크나이저는 각 용어의 순서 또는 위치와, 해당 용어가 나타내는 원본 단어의 시작 및 끝 문자 오프셋을 기록하는 역할도 합니다.

분석기는 토크나이저정확히 하나 가져야 합니다.

토큰 필터는 토큰 스트림을 받아 토큰을 추가, 제거, 변경할 수 있습니다. 예를 들어 lowercase 토큰 필터는 모든 토큰을 소문자로 변환하고, stop 토큰 필터는 토큰 스트림에서 the 같은 일반적인 단어(불용어)를 제거하며, synonym 토큰 필터는 토큰 스트림에 동의어를 추가합니다.

토큰 필터는 각 토큰의 위치나 문자 오프셋을 변경할 수 없습니다.

분석기는 토큰 필터0개 이상 가질 수 있으며, 순서대로 적용됩니다.