# 과제 개요

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
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기