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"
}
}
}
반응형