범위 지정 검색

숫자나 일시 등 범위를 지정할 수 있는 데이터를 필드에 저장하고 있는 경우, 해당 필드에 대해 범위 지정 검색이 가능합니다.

사용 방법

범위 지정 검색을 하려면 “필드명:[값 TO 값]”을 검색 양식에 입력합니다. 범위의 구분에는 반각 대문자 TO 를 사용합니다.

예를 들어, content_length 필드에 대해 1k바이트에서 10k바이트 범위에 있는 문서를 검색하는 경우에는 다음과 같이 검색 양식에 입력합니다.

content_length:[1000 TO 10000]

대괄호 [ ] 는 범위의 양 끝을 포함하며(이상·이하), 중괄호 { } 는 범위의 양 끝을 포함하지 않습니다(초과·미만). 두 가지를 조합하여 지정할 수도 있습니다. 예를 들어 content_length:{1000 TO 10000] 는 1000보다 크고 10000 이하인 문서를 나타냅니다.

한쪽을 * 로 지정하면 상한 또는 하한만을 지정한 열린 범위를 나타냅니다. content_length:[1000 TO *] 는 1000 이상, content_length:[* TO 10000] 는 10000 이하를 나타냅니다.

범위 지정 검색은 검색 대상으로 등록되어 있는 필드에 대해서만 유효합니다. 기본적으로 content_length, last_modified, timestamp, click_count, favorite_count 등의 필드에서 범위 지정 검색을 할 수 있습니다.

시간 범위 지정 검색

시간(일시)의 범위 지정 검색을 하려면 “last_modified:[일시1 TO 일시2]”(일시1<일시2)를 검색 양식에 입력합니다. 또한 일시1이 일시2보다 나중인 경우에도 오류가 되지 않고 검색 결과가 0건이 됩니다.

일시는 ISO 8601 형식으로 지정합니다. 형식은 YYYY-MM-DDThh:mm:ss.SSSZ 이며, 시각 이후는 생략할 수 있습니다.

지정 내용
연월일만 2012-12-02
연월일 및 시분초 2012-12-02T10:45:23Z
연월일 및 시분초(밀리초까지) 2012-12-02T10:45:23.235Z

일시 지정에는 현재 일시를 기준으로 한 일시 연산을 사용할 수 있습니다. 사용할 수 있는 기호는 다음과 같습니다.

기호 의미
now 현재 일시
y / M / w / d / h / m / s 년 / 월 / 주 / 일 / 시 / 분 / 초
+ / - 가산 / 감산
/ 반올림(/ 뒤의 단위로 반올림)

now나 일시를 기준으로 한 경우에는 +, -(가산, 감산)나 /(반올림)와 같은 기호를 붙일 수 있습니다. 다만, now가 아니라 특정 일시를 기준으로 한 경우에는 일시와 기호 사이에 || 를 넣어야 합니다(예: 2016-01-01||+1M/d).

// 뒤의 단위로 반올림하는 기호입니다. now-1d/d 는 오늘 몇 시에 실행하더라도 오늘 00:00에서 -1일 한 전날 00:00을 나타냅니다.

또한 이러한 일시 연산은 검색 엔진(OpenSearch) 측에서 평가되며, 일시형 필드에 대해서만 유효합니다.

예를 들어, last_modified 필드에 대해 현재 일시(2016년 2월 21일 20시로 가정)로부터 30일 전까지 업데이트된 문서를 검색하는 경우에는 다음과 같이 검색 양식에 입력합니다.

last_modified:[now-30d TO now]

위 예는 현재 일시가 2016년 2월 21일 20시(UTC)인 경우, 대략 [2016-01-22T20:00:00Z TO 2016-02-21T20:00:00Z] 범위에 해당합니다.