템플릿 설정
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 |
---|