안녕하세요. 여행하는 개발자입니다.
이번 포스팅에서는 Elasticsearch에서 사용하는 기본필터 4가지 에 대해 알아보겠습니다.
이 필터들은 텍스트를 분석하고, 토큰을 변환하는 데 중요한 역할을 합니다. 아래에서 각 필터의 역할과 예시를 확인해봅시다.

1. lowercase 필터
lowercase 필터는 텍스트 내의 모든 문자를 소문자로 변환하는 필터입니다.
이 필터는 대소문자를 구별하지 않고 검색을 할 수 있도록 도와줍니다.
일반적으로 검색의 일관성을 높이고, 사용자가 대소문자를 신경쓰지 않아도 되도록 하는 데 유용합니다.
✅ 예시
입력 텍스트: Apple 2025 맥북 에어
변환 후: apple 2025 맥북 에어
PUT /products/_settings
{
"analysis": {
"filter": {
"lowercase_filter": {
"type": "lowercase"
}
}
}
}
위 설정을 통해 Elasticsearch는 대소문자 구분 없이 "Apple"을 "apple"로 저장하고, 검색 시에도 일관된 결과를 제공합니다.
2. html_strip 필터
html_strip 필터는 HTML 태그를 제거하는 필터입니다. 이 필터는 HTML 콘텐츠가 포함된 텍스트에서 불필요한 HTML 태그를 제거하여 순수한 텍스트만을 분석할 수 있게 도와줍니다. 웹 크롤러에서 수집한 데이터나 HTML 콘텐츠를 처리할 때 유용합니다.
✅ 예시
입력 텍스트: <h1>아이폰 15 사용 후기</h1>
변환 후: 아이폰 15 사용 후기
PUT /products/_settings
{
"analysis": {
"filter": {
"html_strip_filter": {
"type": "html_strip"
}
}
}
}
HTML 태그를 제거하여 텍스트만을 추출할 수 있게 됩니다. 위 예시에서는 <h1>와 </h1> 태그가 제거됩니다.
3. stop 필터
stop 필터는 검색에 의미가 없는 불용어(stop words)를 제거하는 필터입니다.
불용어란 "the", "is", "in" 등의 일반적인 단어로, 이들 단어는 검색에서 제외되어 텍스트 분석에 방해가 될 수 있습니다.
이 필터는 이러한 단어들을 분석에서 제외하여 성능을 최적화합니다.
✅ 예시
입력 텍스트: The quick brown fox jumps over the lazy dog
변환 후: quick brown fox jumps lazy dog
PUT /products/_settings
{
"analysis": {
"filter": {
"stop_filter": {
"type": "stop",
"stopwords": ["the", "is", "in", "on", "a"]
}
}
}
}
위 예시에서 "the", "is", "in" 등의 단어는 분석에서 제외됩니다.
4. stemmer 필터
stemmer 필터는 단어를 원형(근본형)으로 변환하는 필터입니다.
예를 들어, "running", "runner" 등의 단어를 "run"으로 변환하여 같은 의미의 단어들을 일관되게 처리할 수 있습니다.
이 필터는 텍스트에서 단어를 표준화하여, 다양한 형태의 단어를 하나의 단어로 묶어 검색 효율성을 높입니다.
✅ 예시
입력 텍스트: running runners ran
변환 후: run run run
PUT /products/_settings
{
"analysis": {
"filter": {
"stemmer_filter": {
"type": "stemmer",
"language": "english"
}
}
}
}
위 설정을 통해 "running", "runners", "ran"과 같은 단어들이 "run"으로 변환됩니다.
이처럼 동사의 다양한 형태를 일관되게 처리할 수 있습니다.
결론
Elasticsearch에서 제공하는 다양한 필터들은 텍스트 분석의 정확도와 성능을 향상시키는 데 중요한 역할을 합니다.
각 필터의 역할을 잘 이해하고, 필요에 맞게 적절한 필터를 설정하면 보다 효율적이고 정확한 검색 결과를 얻을 수 있습니다.
'개발 Story > ElasticSearch' 카테고리의 다른 글
| [ElasticSearch] 애널라이저(Analyzer) 란? (1) | 2025.07.15 |
|---|---|
| [ElasticSearch] 기본 검색 기능 및 작동원리 (2) | 2025.07.14 |
| [ElasticSearch] SpringBoot + ElasticSearch를 활용한 CRUD구현 (1) | 2025.07.11 |
| [ElasticSearch] Elasticsearch란 무엇인가? (0) | 2025.07.10 |


























