Elasticsearch 컬렉션 Date Histogram 컬렉션

3672 단어
Elasticsearch의 집합은 주로 두 가지로 나뉘는데 그것이 바로 metric과 bucket이다. 2.0에 pipeline이 추가되었는데 아직 연구가 되지 않았다.이 편은 Bucket 집합의 상용 집합인 date histogram을 소개합니다.참고: 공식 문서

활용단어참조


Datehistogram의 사용법은histogram과 차이가 많지 않습니다. 단지 구간에서 날짜의 표현식을 지원합니다.
{
"aggs":{
    "articles_over_time":{
        "date_histogram":{
            "field":"date",
            "interval":"month"
            }
        }
    }
}

interval 필드는 여러 가지 키워드를 지원합니다:'year','quarter','month','week','day','hour','minute','second'
물론 이러한 키워드를 확장해서 사용할 수도 있습니다. 예를 들어 한 시간 반 동안 다음과 같이 정의할 수 있습니다.
{
    "aggs":{
        "articles_over_time":{
            "date_histogram":{
                "field":"date",
                "interval":"1.5h"
                }
            }
        }
}

반환된 결과는 포맷을 설정하여 포맷할 수 있습니다.
{
    "aggs":{
        "articles_over_time":{
            "date_histogram":{
                "field":"date",
                "interval":"1M",
                "format":"yyyy-MM-dd"
                }
            }
        }
    }

결과는 다음과 같습니다.
{
    "aggregations":{
        "articles_over_time":{
            "buckets":[{
                "key_as_string":"2013-02-02",
                "key":1328140800000,
                "doc_count":1
            },{
                "key_as_string":"2013-03-02",
                "key":1330646400000,
                "doc_count":2
            },
            ...
            ]}
        }
}

여기서 key_as_string은 포맷된 날짜입니다. 키는 날짜 스탬프입니다.

time_zone 시간대의 사용법


es에서 날짜는 시간대의 표시 방법을 지원합니다. 그러면 동팔구의 시간에 해당합니다.
{
    "aggs":{
        "by_day":{
            "date_histogram":{
                "field":"date",
                "interval":"day",
                "time_zone":"+08:00"
            }
        }
    }
}

offset 오프셋 값을 사용하여 시간 구간을 변경합니다.


기본값은 새벽 0시부터 자정 24시까지입니다. 시간대를 변경하려면 아래에서 오프셋 값을 설정할 수 있습니다.
{"aggs":{
    "by_day":{
        "date_histogram":{
            "field":"date",
            "interval":"day",
            "offset":"+6h"
            }
        }
    }
}

그러면 통의 구간은 다음과 같이 바뀐다.
"aggregations":{
    "by_day":{
        "buckets":[{
            "key_as_string":"2015-09-30T06:00:00.000Z",
            "key":1443592800000,
            "doc_count":1
        },{
            "key_as_string":"2015-10-01T06:00:00.000Z",
            "key":1443679200000,
            "doc_count":1
        }]
    }
}

Missing Value 기본 필드


값이 없는 필드를 만나면 기본 필드missing value에 따라 계산됩니다.
{
    "aggs":{
        "publish_date":{
            "date_histogram":{
                "field":"publish_date",
                "interval":"year",
                "missing":"2000-01-01"
            }
        }
    }
}

기타


다른 용법에 대해서는 여기에서 군더더기 설명이 많지 않다. 예를 들어 스크립트, Order,min_doc_count 필터, extended_bounds 등은 모두 지원됩니다.

좋은 웹페이지 즐겨찾기