# 과제 개요
1. 여행 관련 index 설정 및 데이터 적재
2. 각종 조회
# 해결 과정
1-1. index 정의
PUT index_tour
{
"mappings": {
"properties": {
"Doc Id":{
"type": "long"
},
"name":{
"type": "text",
"fields": {
"keyword":{
"type":"keyword"
}
}
},
"phone":{
"type": "text",
"fields": {
"keyword":{
"type":"keyword"
}
}
},
"holiday_dest":{
"type": "text",
"fields": {
"keyword":{
"type":"keyword"
}
}
},
"departure_date":{
"type": "date",
"format": "yyyy/MM/dd"
}
}
}
}
1-2. 데이터 적재
PUT index_tour/_doc/1
{
"name":"Alfred",
"phone": "010-1234-5678",
"holiday_dest":"Disneyland",
"departure_date":"2019/03/05"
}
...
2-1.인덱스에서 010-3333-5555를 검색하시오
# 정확히 일치하는 건만 조회
GET index_tour/_search
{
"query": {
"match": {
"phone.keyword": "000-3333-5555"
}
}
}
# 유사 일치건들 다 조회
GET index_tour/_search
{
"query": {
"match": {
"phone": "010-3333-5555"
}
}
}
2-2. AND 연산과 SELECT 연산을 하라
> AND : query - bool - must - match
> SELECT : _source 속성
2-3. OR 연산, SELECT, SORT 연산을하라
GET index_tour/_search
{
"query": {
"bool": {
"should": [
{
"match": {
"phone.keyword": "010..."
}
},
{
"match":{
"phone.keyword":"010..."
}
}
]
}
},
"_source": "name",
"sort": [
{
"name.keyword": {
"order": "desc"
}
}
]
}
# 집계, 정렬의 경우 keyword 필드만 가능
2-4. 여행 목적지별로 집계된 결과를 조회하시오
# 그룹핑을 하라
GET index_tour/_search
{
"size": 0,
"aggs": {
"groyp_by_holiday_dest": {
"terms": {
"field": "holiday_dest.keyword",
"size" : 10
}
}
}
}
# terms 속성이란? 필드 기준으로 그룹핑하겠다.
'Development Stack > ELK' 카테고리의 다른 글
[ELK] 과제로 정리하기 - 시각화 (0) | 2020.12.08 |
---|---|
[ELK] 과제로 정리하기 - 기본 index 생성, 데이터 적재 (0) | 2020.12.08 |
[ELK] 데이터 시각화 (0) | 2020.12.01 |
[ELK] ElasticSearch 검색 (0) | 2020.12.01 |
[ELK] 개요 (0) | 2020.12.01 |
최근댓글