엘라스틱서치를 이용해서 데이터를 수집하다 보면 반드시 날짜별로 group by(카운트)를 해야되는 경우가 생긴다. mysql에서는 group by를 이용하면 날짜별로 카운트할 수 있듯이 엘라스틱서치에도 aggs라는것이 있다.
지난 시간에 했던 aggs의 연장선상이다.
{
"size": 0,
"aggs": {
"products": {
"terms": {
"field": "product"
}
},"visitdate": {
"date_histogram": {
"field": "regdate",
"order":{"_key":"asc"},
"calendar_interval": "day"
}
}
}
}
지난 시간에는 위에 있는 "terms"를 이용해 group by를 했다면 날짜를 하는 경우에는 "date_histogram"이라는 옵션을 사용한다.
"calendar_interval": "day"
이부분이다. day 대신에 month, hour등을 넣어서 월별이나 시간별로 group by 할 수도 있다.
"aggregations" : {
"visitdate" : {
"buckets" : [
{
"key_as_string" : "2023-07-25 00:00:00",
"key" : 1690243200000,
"doc_count" : 571
},
{
"key_as_string" : "2023-07-26 00:00:00",
"key" : 1690329600000,
"doc_count" : 1653
},
{
"key_as_string" : "2023-07-27 00:00:00",
"key" : 1690416000000,
"doc_count" : 665
}
]
}
이렇게 날짜별로 나온다.
'엘라스틱서치' 카테고리의 다른 글
엘라스틱서치, 필드의 타입을 변경할때는 그냥 reindex 해서 인덱스를 다시 만들자 (0) | 2023.09.05 |
---|---|
엘라스틱서치 - 와일드카드 검색, like 검색 (0) | 2023.08.31 |
엘라스틱서치에서 group by 사용하기 - aggs (0) | 2023.07.25 |
Logstash의 활용 - 새롭게 등록되거나 수정된 데이터만 등록 (0) | 2023.07.03 |
Logstash의 활용 - mysql 데이터를 엘라스틱서치에 자동 등록 (0) | 2023.06.30 |