티스토리 뷰
Elasticsearch 에는 여러 데이터 타입이 있지만, 그 중 String 타입은 5.0 부터 text 와 keyword 로 분리되었습니다.
- text: 설명 혹은 길이가 긴 텍스트가 있는 필드에서 전문 검색(full-text) 가 필요한 경우이며, 색인 전에 분석(analyze)을 거쳐 전문 검색(full-text) 에 활용됩니다.
- keyword: 문자열 필드 분석(analyze)이 가능한 타입이며, 해당 타입은 정렬 / 필터링 / 집계 기능을 지원합니다.
각각 데이터 타입은 5.0 이전 버전에서는 analyzed 와 not_analyzed 로 지원되던 기능입니다.
version < 5.0 (이전) text 타입
{
"foo": {
"type" "string",
"index": "analyzed"
}
}
version >= 5.0 (이후) text 타입
{
"foo": {
"type" "text",
"index": true
}
}
version < 5.0 (이전) keyword 타입
{
"foo": {
"type" "string",
"index": "not_analyzed"
}
}
version >= 5.0 (이후) keyword 타입
{
"foo": {
"type" "keyword",
"index": true
}
}
전문 검색(full-text) 이 필요 없는 필드는 되도록 keyword 타입으로 사용하는게 좋습니다. (되도록 필드는 직접 매핑)
댓글