Elasticsearch Date Query

less than 1 minute read

참고

https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-range-query.html

Elasticsearch 6.4

Date Query

필드 타입이 Date 인 경우에는 Oracle 에서 흔히 쓰는 INTERVAL X MONTH 같은 쿼리를 Elasticsearch 에서 구현할수 있는 방법입니다.

date가 현재 - 1일 ~ 현재까지의 데이터를 구하는 쿼리

GET _search
{
    "query": {
        "range" : {
            "date" : {
                "gte" : "now-1d/d",
                "lt" :  "now/d"
            }
        }
    }
}

와 같이 조건을 지정할수 있습니다.

비교

속성 설명
gt Greater than
gte Greater than or equal
lt Less then
lte Less than or equal

날짜 계산은 다음2 페이지와 같이 할수 있으며, 자세한 설명은 다음과 같습니다.

date + X 속성 혹은 date - X 속성

속성 설명
y years
M months
w weeks
d days
h hours
H hours
m minutes
s seconds

또한 반올림하여 계산할수 있으며 이는 다음과 같습니다.

/d, /y 등 time unit

ex) now-3d/d - 현재일자를 Day 기준으로 반올림하고 3일을 뺀 일자

-다만, now 는 UTC 기준으로 작성되기 때문에 이를 유의하여야 한다!-