도서 요약 / / 2022. 12. 22. 20:19

06. Term Level Queries

complete guide to elasticsearch를 정리한 자료입니다.
https://www.udemy.com/course/elasticsearch-complete-guide/

80. Term level 쿼리 소개

81. Term 쿼리

# 데이터 입력
POST product/_doc/1
{
  "name": "Lobster is good",
  "price": 11,
  "in_stock": 9,
  "sold": 96,
  "tags": ["Cake"],
  "is_active": true,
  "description": "In sagittis"
}
POST product/_doc/2
{
  "name": "Soup - Cambells Chill",
  "price": 22,
  "in_stock": 2,
  "sold": 32,
  "tags": ["Soup"],
  "is_active": true,
  "description": "In sagittis dui vel nisl."
}

조회를 해보면

GET product/_search
{
  "query": {
    "term": {
      "is_active": true
    }
  }
}

# 결과는 동일하다.
GET product/_search
{
  "query": {
    "term": {
      "is_active": {
        "value": true
      }
    }
  }
}

Term 쿼리는 정확한 값을 검색하기 위해 사용한다.

82. multiple terms 검색

GET product/_search
{
  "query": {
    "terms": {
      "tags.keyword": [
        "Soup",
        "Cake"
      ]
    }
  }
}

83. ID 기반 검색

GET product/_search
{
  "query": {
    "ids": {
      "values": [1, 2]
    }
  }
}

84. 범위로 검색

GET product/_search
{
  "query": {
    "range": {
      "in_stock": {
        "gte": 1,
        "lte": 5
      }
    }
  }
}

85. 날짜

86. Non-null 값으로 matching

GET product/_search
{
  "query": {
    "exists": {
      "field": "tags"
    }
  }
}

87. prefix 기반 matching

GET product/_search
{
  "query": {
    "prefix": {
      "tags.keyword": "So"
    }
  }
}

So로 시작하는 것으로 검색

88. wildcard 검색

GET product/_search
{
  "query": {
    "wildcard": {
      "tags.keyword": "S*p"
    }
  }
}

한글자로 매칭하는 경우

GET product/_search
{
  "query": {
    "wildcard": {
      "tags.keyword": "So?p"
    }
  }
}

89. 정규식으로 검색

GET product/_search
{
  "query": {
    "regexp": {
      "tags.keyword": "S[a-zA-Z]+p"
    }
  }
}
반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유