유사도=ES

Stop Word Analyzer의 구성 요소와 동작 방식

Elasticsearch에서 Stop Word Analyzer는 기본적으로 다음과 같은 과정을 통해 텍스트를 처리합니다:

  1. Tokenizer: 입력된 텍스트를 단어 단위로 분리합니다.
  2. Lowercase Filter: 모든 단어를 소문자로 변환하여 대소문자에 따른 검색 오류를 줄입니다.
  3. Stop Filter: 불용어 목록을 참조해 불용어에 해당하는 단어들을 필터링하여 제거합니다.

Elasticsearch의 기본 Stop Word Analyzer는 여러 언어에 대해 미리 정의된 불용어 목록을 제공하며, 사용자는 필요한 경우 이 목록을 커스터마이징할 수 있습니다. 예를 들어, 한국어에 맞게 불용어 목록을 설정하거나, 특정한 비즈니스 도메인에 맞게 추가적인 단어를 불용어로 지정할 수도 있습니다.

설정 방법 예시

예를 들어, 영어에서 불용어를 설정하는 경우, 다음과 같은 설정을 할 수 있습니다:

json
코드 복사
PUT /my_index
{
  "settings": {
    "analysis": {
      "analyzer": {
        "custom_stop_analyzer": {
          "type": "stop",
          "stopwords": "_english_"  // 영어 불용어 목록 사용
        }
      }
    }
  }
}

위의 설정에서는 _english_로 미리 정의된 영어 불용어 목록을 사용하지만, 아래와 같이 커스텀 불용어 목록을 직접 정의할 수도 있습니다.

json
코드 복사
PUT /my_index
{
  "settings": {
    "analysis": {
      "analyzer": {
        "custom_stop_analyzer": {
          "type": "stop",
          "stopwords": ["the", "is", "at", "which", "on"]
        }
      }
    }
  }
}

주의사항

Stop Word Analyzer는 텍스트의 노이즈를 줄이고 검색의 관련성을 높이기 위한 중요한 역할을 하므로, 문서의 내용과 검색어의 특성에 따라 잘 설정하는 것이 Elasticsearch의 성능을 극대화하는 데 도움이 됩니다.

시노님 = 동의어

데이터베이스에서 **시노님(Synonym)**은 서로 다른 단어이지만 같은 의미를 가지거나 유사한 의미로 간주할 수 있는 단어들을 매핑하여 검색의 정확성을 높이는 방법입니다. 예를 들어, 사용자가 특정 단어로 검색을 했을 때 이 단어와 연관된 다른 단어들도 함께 검색에 포함시키고자 할 때 시노님을 설정합니다.