본문 바로가기

공부방/Elasticsearch

범위 쿼리 (Range Query)

연습용 데이터 생성


 Elasticsearch는 이 외에도 숫자나 날짜 형식들의 저장이 가능합니다.

숫자, 날짜 형식은 range 쿼리를 이용해서 검색을 합니다.

range 쿼리의 예제를 위해 먼저 아래의 phones 인덱스를 추가하겠습니다.

phones 인덱스에 다섯개의 Query를 추가합니다.

model, price, date라는 값들이 들어있습니다.

 
POST phones/_bulk
{"index":{"_id":1}}
{"model":"Samsung GalaxyS 5","price":475,"date":"2014-02-24"}
{"index":{"_id":2}}
{"model":"Samsung GalaxyS 6","price":795,"date":"2015-03-15"}
{"index":{"_id":3}}
{"model":"Samsung GalaxyS 7","price":859,"date":"2016-02-21"}
{"index":{"_id":4}}
{"model":"Samsung GalaxyS 8","price":959,"date":"2017-03-29"}
{"index":{"_id":5}}
{"model":"Samsung GalaxyS 9","price":1059,"date":"2018-02-25"}

 

range 쿼리


range 쿼리는 range : { <필드명>: { <파라메터>:<값> } } 으로 입력됩니다.
 
range 쿼리 파라메터는 아래의 4가지가 있습니다.
 
  1. gte (Greater-than or equal to) - 이상 (같거나 큼)
  2. gt (Greater-than) – 초과 (큼)
  3. lte (Less-than or equal to) - 이하 (같거나 작음)
  4. lt (Less-than) - 미만 (작음)
 
GET phones/_search
{
  "query": {
    "range": {
      "price": {
        "gte": 700,
        "lt": 900
      }
    }
  }
}

 

아래와 같이 날짜타입에도 range로 검색할 수 있습니다.

 

GET phones/_search
{
  "query": {
    "range": {
      "date": {
        "gt": 2016-01-01,
        "lt": 2017-01-01
      }
    }
  }
}

'공부방 > Elasticsearch' 카테고리의 다른 글

노리 (nori) 한글 형태소 분석기  (0) 2023.05.11
텍스트 분석 - Text analysis  (0) 2023.05.10
정확값 쿼리 (Exact Value Query)  (0) 2023.05.10
복합 쿼리 - Bool Query  (0) 2023.05.10
정확도 - Relevancy (Score 책정)  (0) 2023.05.10