ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Mapping parameters
    BackEnd/Elasticsearch API 2025. 3. 14. 02:00
    반응형

    index

      필드가 색인될지 여부를 결정합니다. 대부분의 필드 타입에서 기본적으로 활성화되어 있습니다. false일 경우 색인이 되지 않아 검색이 불가능합니다.

    {
      "properties": {
        "session_data": {
          "type": "keyword",
          "index": false
        }
      }
    }

     

    analyzer

      텍스트 필드에 사용할 분석기를 지정합니다.

    {
      "properties": {
        "title": {
          "type": "text",
          "analyzer": "english"
        }
      }
    }

     

    format

      날짜 필드에 사용되는 형식을 지정합니다.

    {
      "properties": {
        "timestamp": {
          "type": "date",
          "format": "strict_date_optional_time||epoch_millis"
        }
      }
    }

     

    coerce

      데이터가 필드의 데이터 타입과 일치하지 않을 때 강제로 변환할지 여부를 결정합니다. 기본적으로 활성화되어 있습니다. 예를 들어, 숫자 필드에 문자열이 입력될 경우 자동으로 숫자로 변환합니다.

    {
      "properties": {
        "age": {
          "type": "integer",
          "coerce": true
        }
      }
    }

     

    doc_values

      필드에 대해 doc_values를 활성화할지 여부를 결정합니다. 이는 정렬과 집계에 유용한 자료 구조를 제공합니다. 대부분의 필드 타입에서 기본적으로 활성화되어 있습니다. text와 annotated_text 필드에서는 지원되지 않습니다.

    PUT /software_store
    {
      "mappings": {
        "properties": {
          "product_name": {
            "type": "text",
            "fields": {
              "keyword": {
                "type": "keyword"
              }
            }
          },
          "price": {
            "type": "double",
            "doc_values": true
          },
          "release_date": {
            "type": "date",
            "doc_values": true
          },
          "price": {
            "type": "integer",
            "doc_values": true
          }
        }
      }
    }
    
    POST /software_store/_doc/1
    {
      "product_name": "Elasticsearch Book",
      "price": 29.99,
      "release_date": "2023-01-01",
      "stock": 150
    }
    
    POST /software_store/_doc/2
    {
      "product_name": "Kibana Dashboard",
      "price": 49.99,
      "release_date": "2023-05-15",
      "stock": 75
    }
    
    POST /software_store/_doc/3
    {
      "product_name": "Logstash Guide",
      "price": 19.99,
      "release_date": "2023-03-10",
      "stock": 200
    }
    
    POST /software_store/_search
    {
      "sort": [
        { "price": { "order": "asc" } }
      ],
      "_source": ["product_name", "price"]
    }

     

    norms

      문서의 점수를 계산하는 데 필요한 정규화 요인을 저장합니다. 이는 검색 시 문서의 관련성을 평가하는 데 사용됩니다. 기본적으로 활성화되어 있습니다. 그러나 디스크 공간을 많이 차지하므로 필터링이나 집계 전용 필드에서는 비활성화하는 것이 좋습니다.

    {
      "properties": {
        "title": {
          "type": "text",
          "norms": false
        }
      }
    }

     

    null_value

      명시적인 null 값을 특정한 값으로 대체하여 색인 및 검색이 가능하도록 합니다. 다음은 status_code 필드의 null 값을 "NULL"로 대체하여 색인합니다.

    {
      "properties": {
        "status_code": {
          "type": "keyword",
          "null_value": "NULL"
        }
      }
    }

     

    copy_to

      한 필드의 값을 다른 필드로 복사하여, 여러 필드를 하나의 필드로 통합하여 검색할 수 있게 합니다. 이는 검색 성능을 향상시키고, 여러 필드를 동시에 검색할 때 유용합니다.

    PUT /name_book
    {
      "mappings": {
        "properties": {
          "first_name": {
            "type": "text",
            "copy_to": "full_name"
          },
          "last_name": {
            "type": "text",
            "copy_to": "full_name"
          },
          "full_name": {
            "type": "text"
          },
          "email": {
            "type": "keyword"
          }
        }
      }
    }
    
    POST /name_book/_doc/1
    {
      "first_name": "John",
      "last_name": "Doe",
      "email": "john.doe@example.com"
    }
    
    POST /name_book/_doc/2
    {
      "first_name": "Jane",
      "last_name": "Smith",
      "email": "jane.smith@example.com"
    }
    
    POST /name_book/_search
    {
      "query": {
        "match": {
          "full_name": "John Doe"
        }
      }
    }

     

    [참고자료]

    반응형

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

    Index Template  (0) 2025.03.16
    Alias & Reindex  (0) 2025.03.15
    Mapping  (0) 2025.03.13
    Analysis  (0) 2025.03.11
    Multiple Documents  (0) 2025.03.10

    댓글

Designed by Tistory.