숫자나 일시 등 범위를 지정할 수 있는 데이터를 필드에 저장하고 있는 경우, 해당 필드에 대해 범위 지정 검색이 가능합니다.
사용 방법
범위 지정 검색을 하려면 “필드명:[값 TO 값]”을 검색 양식에 입력합니다. 범위의 구분에는 반각 대문자 TO 를 사용합니다.
예를 들어, content_length 필드에 대해 1k바이트에서 10k바이트 범위에 있는 문서를 검색하는 경우에는 다음과 같이 검색 양식에 입력합니다.
대괄호 [ ] 는 범위의 양 끝을 포함하며(이상·이하), 중괄호 { } 는 범위의 양 끝을 포함하지 않습니다(초과·미만). 두 가지를 조합하여 지정할 수도 있습니다. 예를 들어 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일 전까지 업데이트된 문서를 검색하는 경우에는 다음과 같이 검색 양식에 입력합니다.
위 예는 현재 일시가 2016년 2월 21일 20시(UTC)인 경우, 대략 [2016-01-22T20:00:00Z TO 2016-02-21T20:00:00Z] 범위에 해당합니다.