✅ 애널라이저(Analyzer)란?

이전 강의에서 productsname 필드값을 토큰(token)으로 분리해 역인덱스(Inverted Index)로 저장하는 과정을 살펴봤다. 이 과정에서 문자열(text)을 토큰으로 변환시켜주는 장치를 보고 **애널라이저(Analyzer)**라고 부른다.

POST /products/_create/1
{
  "name": "Apple 2025 맥북 에어 13 M4 10코어"
}

POST /products/_create/2
{
  "name": "Apple 2024 에어팟 4세대"
}

POST /products/_create/3
{
  "name": "Apple 2024 아이패드 mini A17 Pro"
}
토큰(token) 도큐먼트 id
Apple [1, 2, 3]
2025 [1]
맥북 [1]
에어 [1]
13 [1]
M4 [1]
10코어 [1]
2024 [2, 3]
에어팟 [2]
4세대 [2]
아이패드 [3]
mini [3]
A17 [3]
Pro [3]

그림으로 나타내면 다음과 같다.

image.png

이전에 간단하게 배울 때는 문자열을 단어 단위로 잘라서 토큰으로 만든다고만 배웠다. 사실은 문자열을 간단하게 단어 단위로만 자르는 게 아니라 **애널라이저(Anylyzer)**가 여러 가지의 작업을 거쳐서 토큰을 만들어낸다.

**애널라이저(Analyzer)**는 내부적으로 캐릭터 필터(character filter), 토크나이저(tokenizer), **토큰 필터(token filter)**라는 걸 활용해 문자열을 토큰으로 변환시킨다. 이 3가지의 개념에 대해 조금 더 자세히 알아보자.

✅ 캐릭터 필터(character filter)

**캐릭터 필터(character filter)**는 문자열을 토큰으로 자르기 전에 문자열을 다듬는 역할을 한다.

다양한 종류의 필터가 존재하며, 여러 개의 필터를 적용시킬 수 있다.

[예시]