Elasticsearch 범위 조회 자습서

Elasticsearch 범위 조회 자습서

2022-06-04 last update

5 minutes reading Elastic Search
Elasticsearch에서, 우리는 범위 조회를 사용하여 특정 범위와 일치하는 문서의 결과를 얻을 수 있습니다.
이 안내서에서는 검색 질의에서 범위 매개변수를 정의하는 데 부울 표현식 (예: 크고, 작고, 크고) 을 사용합니다.

Elasticsearch 범위 조회: 기본 사용 방법


검색 검색에서 특정한 범위를 지정하려면range 매개 변수, 뒤쪽 필드와 검사할 조건을 사용할 수 있습니다.
다음 쿼리 반환 필드 AvgTicketPrice 600 이상 800 미만 문서
GET /kibana_sample_data_flights/_search
{
"query": {
"range": {
"AvgTicketPrice": {
"gte": 600,
"lte": 800
}
}
}
}
다음은 결과를 반환하는 예입니다.

조회 이해


위의 예시에서 우리는 조회에서 범위를 설정했다.range 키워드는 검색할 필드를 정의하는field 매개 변수가 필요합니다.
그리고 우리는 필드의 매개 변수를 계속 정의합니다.다음과 같은 부울 조건입니다.
  • gt – 보다 크다
  • gte – 크거나 같음
  • lt – 이하
  • lte – 이하 또는 동일
  • 조회 시간 범위


    검색할 필드 형식이date이면 위의 조건을 사용하고 다음 자원에 정의된 날짜 수학을 사용할 수 있습니다.
    Elasticsearch Date math docs
    다음 값을 고려하여 이 값은time\uzone 매개 변수를 사용하여 시간을 UTC 값으로 변환하고 범위를 검색합니다.
    GET /kibana_sample_data_flights/_search
    {
    "query": {
    "range": {
    "timestamp": {
    "time_zone": "+03:00",
    "gte": "2021-10-14T05:22:14",
    "lte": "now"
    }
    }
    }
    }
    위의 질의는 2021 10월 14일 05:22:14보다 큰 문서를 반환해야 합니다.
    다음은 예제 결과입니다.

    참고: time\u zone은 now 매개변수에 영향을 주지 않습니다.

    보다 크다


    예를 들어 크거나 작거나 같은 조건을 조합할 필요가 없습니다.다음과 같이 단일 범위를 사용할 수 있습니다.
    GET /kibana_sample_data_flights/_search
    {
    "query": {
    "range": {
    "DistanceMiles": {
    "gte": 10000
    }
    }
    }
    }
    위의 예는 10000마일 이상의 문서를 되돌려줍니다.
    답변은 다음과 같습니다.

    부울 모양


    필드 형식이 부울 값인 범위를 확인하려면lte나 gte를 사용하십시오.예를 들어, 항공편 취소 문서를 가져오려면 다음 요청을 실행할 수 있습니다.
    GET /kibana_sample_data_flights/_search
    {
    "query": {
    "range": {
    "Cancelled": {
    "gte": true
    }
    }
    }
    }
    위의 예시에서 우리는 검사할 범위를 부울true로 전달할 것이다.
    결과는 다음과 같습니다.

    닫는 중


    이 안내서에서 Elasticsearch의 범위 조회를 사용하여 특정 범위와 일치하는 결과를 선별하는 방법을 배웠습니다.