ABOUT ME

Developer를 위한 Reference 블로그 입니다.

Today
Yesterday
Total
  • Analysis
    BackEnd/Elasticsearch API 2025. 3. 11. 01:00
    반응형

      Elasticsearch Analysis는 텍스트 데이터를 처리하고, 색인할 수 있도록 변환하는 과정입니다. 이는 텍스트 데이터를 토큰화하고, 필터링하여 검색에 적합한 형태로 만드는 역할을 합니다.

     

    Key components of Analyzers

    • Character Filters: 텍스트를 토큰화하기 전에 문자 단위로 처리하는 역할을 합니다.
      e.g HTML Stripping, Mapping and Pattern Replacement
    • Tokenizer: 텍스트를 개별 단어 또는 토큰으로 나누는 역할을 합니다.
      e.g Standard Tokenizer, Whitespace Tokenizer, Keyword Tokenizer
    • Token Filters: 생성된 토큰을 추가로 처리하는 역할을 합니다.
      e.g Lowercase Token Filter, Stop Token Filter, Stemmer Token Filter

     

    standard analyzer

    POST /_analyze
    {
      "text": "<p>Elasticsearch is a powerful tool for querying and analyzing data  ...!!</p>",
      "analyzer": "standard"
    }
    
    POST /_analyze
    {
      "text": "<p>Elasticsearch is a powerful tool for querying and analyzing data  ...!!</p>",
      "char_filter": ["html_strip"],
      "tokenizer": "standard",
      "filter": ["lowercase"]
    }

     

    Character Filter

    • Mapping character filter
    GET /_analyze
    {
      "tokenizer": "keyword",
      "char_filter": [
        {
          "type": "mapping",
          "mappings": [
            "٠ => 0",
            "١ => 1",
            "٢ => 2",
            "٣ => 3",
            "٤ => 4",
            "٥ => 5",
            "٦ => 6",
            "٧ => 7",
            "٨ => 8",
            "٩ => 9"
          ]
        }
      ],
      "text": "My license plate is ٢٥٠١٥"
    }
    • Customize and add to an analyzer
    PUT /my-index-000001
    {
      "settings": {
        "analysis": {
          "analyzer": {
            "my_analyzer": {
              "tokenizer": "standard",
              "char_filter": [
                "my_mappings_char_filter"
              ]
            }
          },
          "char_filter": {
            "my_mappings_char_filter": {
              "type": "mapping",
              "mappings": [
                ":) => _happy_",
                ":( => _sad_"
              ]
            }
          }
        }
      }
    }
    
    GET /my-index-000001/_analyze
    {
      "tokenizer": "keyword",
      "char_filter": [ "my_mappings_char_filter" ],
      "text": "I'm delighted about it :("
    }

     

    [참고자료]

    반응형

    'BackEnd > Elasticsearch API' 카테고리의 다른 글

    Mapping parameters  (0) 2025.03.14
    Mapping  (0) 2025.03.13
    Multiple Documents  (0) 2025.03.10
    Document  (0) 2025.03.09
    Introduction  (0) 2025.03.08

    댓글

Designed by Tistory.