쿼리 언어 소개
edit쿼리 언어 소개
editElasticsearch는 쿼리 실행에 사용할 수 있도록 JSON 스타일의 도메인 전용 언어를 제공합니다. 이를 Query DSL이라고 합니다. 이 쿼리 언어는 매우 포괄적이므로 처음에는 부담스러울 수도 있습니다. 하지만 가장 효과적인 학습 방법은 몇 가지 기본적인 예와 함께 시작해보는 것입니다.
마지막 예로 돌아가서 이 쿼리를 실행했습니다.
GET /bank/_search { "query": { "match_all": {} } }
위 내용을 자세히 보면 query
부분은 쿼리 정의가 무엇인지 알려주며, match_all
부분은 실행하려는 쿼리의 유형을 나타낼 뿐입니다. match_all
쿼리는 지정된 색인의 모든 문서를 검색하는 것입니다.
query
매개변수 외에 다른 매개변수도 전달하여 검색 결과에 영향을 줄 수 있습니다. 위 섹션의 예는 `sort`를 전달했는데, 이번에는 `size`를 전달하겠습니다.
GET /bank/_search { "query": { "match_all": {} }, "size": 1 }
`size`가 지정되지 않으면 기본값은 10입니다.
이 예에서는 `match_all`을 수행했더니 문서 11 ~ 20이 반환되었습니다.
GET /bank/_search { "query": { "match_all": {} }, "from": 10, "size": 10 }
from
매개변수(0 기반)는 어떤 문서 색인에서 시작할지, size
매개변수는 from 매개변수에서 시작하여 몇 개의 문서를 반환할지 지정합니다. 이 기능은 검색 결과의 페이징 구현에 유용합니다. `from`이 지정되지 않으면 기본값은 0입니다.
이 예는 `match_all`을 수행하고 계정 잔액을 기준으로 내림차순으로 결과를 정렬한 다음 상위 10개(기본 크기) 문서를 반환합니다.
GET /bank/_search { "query": { "match_all": {} }, "sort": { "balance": { "order": "desc" } } }