Elasticsearch

Elasticsearch data type

쿨쿨자는너구리 2023. 3. 23. 18:27

템플릿 설정

api PUT http://localhost:9200/_template/my-log-index
header Content-type: application/json
body {
  "order": 0,
  "index_patterns": [
    "my-log-index-*"
  ],
  "settings": {
    "index": {
      "number_of_shards": "20",
      "number_of_replicas": "0",
      "refresh_interval": "30s",
      "lifecycle": {
        "name": "my-log-index"
      }
    }
  },
  "mappings": {
    "properties": {
      "user_number": {
        "type": "long"
      },
      "user_name": {
        "type": "keyword"
      },
      "message": {
        "type": "text",
        "fields": {
          "keyword": {
            "ignore_above": 256,
            "type": "keyword"
          }
        }
      }
    }
  }
}

 

일반적인 유형

필드 의미
binary Base64로 인코딩 된 문자열
boolean true, false 값
Keywords keyword, constant_keyword, wildcard 값을 포함하는 keyword family
Numbers long, double과 같은 숫자 타입
Dates date, date_nanos를 포함하는 날짜 유형
alias 기존 필드의 별칭

text

text 타입은 입력된 문자열을 텀 단위로 쪼개어 역 색인 (inverted index) 구조를 만듭니다. 보통은 풀텍스트 검색에 사용할 문자열 필드 들을 text 타입으로 지정합니다. text 필드에 설정 가능한 옵션들은 다음과 같은 것들이 있습니다.

keyword

keyword 타입은 입력된 문자열을 하나의 토큰으로 저장합니다. text 타입에 keyword 애널라이저를 적용 한 것과 동일합니다. 보통은 집계(aggregation) 또는 정렬(sorting)에 사용할 문자열 필드를 keyword 타입으로 지정합니다.

 

개체 및 관계형 유형

필드 의미
object JSON 개체
flattened 단일 필드 값인 JSON 개체
nested 하위 필드 관계를 유지하는 JSON 개체
join 동일한 색인에 있는 문서의 상위/하위 관계를 정의

 

구조화된 데이터 유형

필드 의미
Range long_range, double_range, date_range, ip_range과 같은 범위 유형
ip IPv4, IPv6 주소
version 소프트웨어 버전. Semantic Versioning 우선 규칙 지원
murmur3 해시 값을 계산하고 저장

 

집계 데이터 유형

필드 의미
aggregate_metric_double 사전 집계된 측정항목 값
histogram 히스토그램 형태의 사전 집계된 숫자 값

 

텍스트 검색 유형

필드 의미
text fields text, match_only_text를 포함하는 text family. 분석되고 구조화 되지 않은 텍스트
annotated-text 특수 마크업이 포함된 텍스트
completion 자동 완성 제안에 사용
search_as_you_type as-you-type 완성을 위한 유사 유형
token_count 텍스트의 토큰 수

 

문서 순위 유형

필드 의미
dense_vector float 값의 dense vectors를 기록
rank_feature 쿼리 시간에 적중률을 높이는 숫자 기능을 기록
rank_features 쿼리 시간에 적중률을 높이기 위해 숫자 기능을 기록

 

공간 데이터 유형

필드 의미
geo_point 위도 및 경도 지점
geo_shape 다각형과 같은 복잡한 모양
point 임의 직교 점
shape 임의 직교 geometries.

 

다른 유형

필드 의미
percolator Query DSL로 작성된 쿼리 인덱싱

 

배열

배열 형태 배열 예시
문자열 배열 [ "one", "two" ]
숫자 배열 [ 1, 2 ]
배열을 가지는 배열 [ 1, [ 2, 3 ]] which is the equivalent of [ 1, 2, 3 ]
object를 가지는 배열 [ { "name": "Mary", "age": 12 }, { "name": "John", "age": 10 }]

 

다중필드

서로 다른 목적을 위해 서로 다른 방식으로 동일한 필드를 인덱싱하는 것이 종종 유용합니다. 예를 들어 필드는 전체 텍스트 검색을 위한 필드와 정렬 또는 집계를 위한 필드 string로 매핑될 수 있습니다 .

 

참조 :

https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-types.html
https://www.elastic.co/guide/en/elasticsearch/reference/current/array.html
https://esbook.kimjmin.net/07-settings-and-mappings/7.2-mappings/7.2.1

'Elasticsearch' 카테고리의 다른 글

Elasticsearch 설치  (0) 2023.03.13