Text field
- 문자열 데이터를 저장할 때 사용하는 필드
- 분석기(analyzer)를 사용하여 텍스트를 토큰(token)으로 분리하고, 대소문자를 정규화하며, stopword 제거
- 검색할 때는 토큰 단위로 일치 여부를 확인합니다.
"The quick brown fox jumps over the lazy dog."를 저장한 후, "quick"을 검색할 때, 해당 문서가 반환됩니다. 하지만 "quickly"를 검색하면 검색 결과에서 제외됩니다.
Keyword field
- 문자열 데이터를 그대로 저장할 때 사용하는 필드
- 대소문자 구분이 이루어지며, 분석기(analyzer) 사용 안함
- 정확한 일치 여부를 확인할 때 사용
"New York"를 저장한 후, "New York"으로 검색할 때 해당 문서가 반환됩니다. 하지만 "new york"이나 "New"로 검색하면 검색 결과에서 제외됩니다.
Date field
- 날짜와 시간 데이터를 저장할 때 사용하는 필드
- 일반적으로 ISO 8601 형식으로 저장하며, 시간대(timezone)와 정확도(precision) 등의 설정이 가능
"2022-12-31T23:59:59+09:00"와 같은 ISO 8601 형식의 날짜를 저장한 후, 범위 검색을 할 수 있습니다. 예를 들어, "2022-01-01"부터 "2022-12-31" 사이의 날짜를 가진 문서를 검색할 수 있습니다.
Number field
- 숫자 데이터를 저장할 때 사용하는 필드
- 정수(integer), 부동소수점(float), double 등 다양한 숫자 형식을 지원
- 검색할 때는 범위(range) 쿼리나 정확한 일치 여부를 확인하는 쿼리 사용 가능
Boolean field
- 불리언 데이터를 저장할 때 사용하는 필드
- true/false 값을 저장
Object field
- 하나의 문서 안에 또 다른 문서를 저장할 때 사용하는 필드
- 내부적으로는 JSON 형식으로 저장
"name": "John", "age": 30, "address": { "city": "Seoul", "state": "Gangnam-gu" }와 같은 데이터를 저장할 수 있습니다.
Nested field
- Object 필드와 유사하지만, 배열 형태로 저장할 수 있는 필드
- 여러 개의 내부 문서를 저장하고 검색할 때 사용
[{ "name": "John", "age": 30 }, { "name": "Jane", "age": 25 }]와 같은 데이터를 저장할 수 있으며, "name": "John"을 검색하여 해당 문서를 반환할 수 있습니다.
Geo field (geo_point, geo_shape)
- geo_point: 지리 정보(위도, 경도 등)를 저장할 때 사용하는 필드
- geo_shape: 지리적인 도형을 나타내는 다양한 유형의 값(예: 점, 선, 면)을 저장할 때 사용
- 검색할 때는 거리(distance) 쿼리 등을 사용
특정 location 기준으로 수 km 이내에 존재하는 정보가 있는지 검색할 수 있습니다.
Completion field
- 자동완성 기능을 구현할 때 사용하는 필드
- 검색할 때 입력된 텍스트로부터 완성된 단어를 예측하여 반환
출처: https://www.elastic.co/guide/en/elasticsearch/reference/7.10/mapping-types.html
'BigData > ElasticSearch' 카테고리의 다른 글
Elasticsearch 노드의 종류와 역할 (feat 동작 흐름) (0) | 2023.03.22 |
---|---|
Elasticsearch에서 사용되는 주요 용어 10가지 (0) | 2023.03.21 |
Keyword Field를 활용하는 다양한 쿼리 예제 (0) | 2023.03.20 |
초보자를 위한 Elasticsearch 시작하기: CRUD (0) | 2023.03.19 |
Elasticsearch에서 동적 매핑과 필드 정의하기 (0) | 2023.03.13 |