Table of Contents
Elasticsearch Data Type
타입종류
데이타 타입 | 용도 |
---|---|
text | 전문 텍스트 (full text) 검색용. analyzer 를 적용할 수 있다. |
keyword | 형태소 분석을 하지 않는다. |
byte, short, integer, long | 바이트 또는 숫자. |
float, double | 부동 소수점. |
date | 날짜. 밀리세컨드까지 포함한다. |
boolean | 불린. |
list | 리스트. 리스트 각 데이타는 타입이 동일해야 한다. |
nested | 중첩된 데이타 타입. |
money
{
"mappings": {
"properties": {
"number_of_bytes": {
"type": "integer"
},
"time_in_seconds": {
"type": "float"
},
"price": {
"type": "scaled_float",
"scaling_factor": 100
}
}
}
}
샘플
date_optional_time
이 꽤 좋다.
yyyy-MM-dd'T'HH:mm:ss.SSS
이 놈은 밀리세컨드 자릿수까지 예민한데,
date_optional_time
이 놈은 밀리세컨드가 있던없던 다 들어간다.
{
"settings": {
"number_of_shards": 1,
"max_ngram_diff": 20,
"number_of_replicas": 0,
"analysis": {
"tokenizer": {
"my_ngram_tokenizer": {
"type": "ngram",
"min_gram": 1,
"max_gram": 20,
"token_chars": [
"letter",
"digit",
"punctuation"
]
}
},
"analyzer": {
"my_ngram_analyzer": {
"type": "custom",
"tokenizer": "my_ngram_tokenizer",
"filter": [
"lowercase"
]
}
}
}
},
"mappings": {
"properties": {
"itemId": {
"type": "integer"
},
"category": {
"type": "keyword"
},
"itemName": {
"type": "text",
"analyzer": "whitespace",
"search_analyzer": "my_ngram_analyzer"
},
"sellCash": {
"type": "scaled_float",
"scaling_factor": 100
},
"limitNumber": {
"type": "integer"
},
"regDate": {
"type": "date",
"format":"yyyy-MM-dd'T'HH:mm:ss.SSS||date_optional_time"
},
"productBrandInfo": {
"type": "nested",
"properties": {
"brandName" : {
"type": "text"
},
"brandLogo": {
"type": "keyword"
}
}
}
}
}
}