본문 바로가기
WIKI 기술 지식 베이스

Pattern analyzer

원문 보기 위키 갱신

출처: 문서

본문

패턴 분석기

pattern 분석기를 사용하면 정규식(regex)으로 입력 텍스트를 토큰으로 분할하는 커스텀 분석기를 정의할 수 있어요. 또한 정규식 플래그 적용, 토큰 소문자 변환, 불용어(stopwords) 필터링을 위한 옵션도 제공해요.

파라미터

pattern 분석기는 다음 파라미터로 구성할 수 있어요.

파라미터 필수/선택 데이터 타입 설명
pattern 선택 String 입력을 토큰화하는 데 사용되는 Java 정규 표현식이에요. 기본값은 \W+예요.
flags 선택 String 정규식의 동작을 수정하는, 파이프로 구분된 Java 정규식 플래그를 담고 있는 문자열이에요.
lowercase 선택 Boolean 토큰을 소문자로 변환할지 여부예요. 기본값은 true예요.
stopwords 선택 String 또는 문자열 목록 미리 정의된 불용어 목록(예: _english_)을 지정하는 문자열 또는 커스텀 불용어 목록을 지정하는 배열이에요. 기본값은 _none_이에요.
stopwords_path 선택 String 불용어 목록이 담긴 파일의 경로(절대 경로 또는 config 디렉터리 기준의 상대 경로)예요.

예제

다음 명령어를 사용해 pattern 분석기가 있는 my_pattern_index라는 이름의 인덱스를 만들어 보세요:

PUT /my_pattern_index
{
  "settings": {
    "analysis": {
      "analyzer": {
        "my_pattern_analyzer": {
          "type": "pattern",
          "pattern": "\\W+",  
          "lowercase": true,                
          "stopwords": ["and", "is"]       
        }
      }
    }
  },
  "mappings": {
    "properties": {
      "my_field": {
        "type": "text",
        "analyzer": "my_pattern_analyzer"
      }
    }
  }
}

{% include copy-curl.html %}

생성된 토큰

다음 요청으로 분석기가 생성한 토큰을 살펴보세요:

POST /my_pattern_index/_analyze
{
  "analyzer": "my_pattern_analyzer",
  "text": "OpenSearch is fast and scalable"
}

{% include copy-curl.html %}

응답에는 생성된 토큰이 포함되어 있어요:

{
  "tokens": [
    {
      "token": "opensearch",
      "start_offset": 0,
      "end_offset": 10,
      "type": "word",
      "position": 0
    },
    {
      "token": "fast",
      "start_offset": 14,
      "end_offset": 18,
      "type": "word",
      "position": 2
    },
    {
      "token": "scalable",
      "start_offset": 23,
      "end_offset": 31,
      "type": "word",
      "position": 4
    }
  ]
}

더 알아보기 (Learn more)