[Introducing the Query Language]
Elasticsearch는 query를 실행하는데 사용할 수 있는 JSON Style의 domain-specific language를 제공한다. 이것은 Query D니 (http://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl.html) 을 참조하고 있다. Query language는 종합적이고, 처음에는 겁이 날 수도 있지만, 몇 가지 기본적인 예제를 통해서 실제적으로 배우기에는 가장 좋은 방법이다.
마지막 예제로 돌아가서 다음 Query를 실행해 보자.
{
"query": { "match_all": {} }
}
위의 query를 해부해 보면, query 파트는 query에 대한 정의를, match_all은 실행하고자 하는 query의 형태를 나타낸다. match_all query는 특정 index의 모든 document에 대한 검색을 나타낸다.
Query 파라미터에 더하여 검색 결과에 영향을 주는 다른 파라미터를 넘길 수도 있다. 예를 들면, 다음 예제는 match_all 결과 중에 첫번째 document만 리턴한다.
curl -XPOST 'localhost:9200/bank/_search?pretty' -d '
{
"query": {
"match_all": {} },
"size": 1
}'
size 값이 지정되지 않으면 기본적으로 10건을 리턴한다.
다음 예제는 11번째에서 20번째 document를 리턴한다.
curl -XPOST 'localhost:9200/bank/_search?pretty' -d '
{
"query": {
"match_all": {} },
"from": 10,
"size": 10
}'
from 파라미터 (0-based)는 시작지점을 의미하고, size 파라미터는 from 파라미터로부터 얼마나 많은 document를 리턴할 것인지를 의미한다. 검색 결과에 대한 paging을 구현할 때 유용하다. from이 없으면 default는 0이다.
다음 예제는 match_all을 수행하고 내림차순으로 account balance (계좌 잔액) 기준 정렬한 결과를 10개 (default) 리턴하는 예제이다.
curl -XPOST 'localhost:9200/bank/_search?pretty' -d '
{
"query": {
"match_all": {} },
"sort": {
"balance": { "order": "desc" } }
}'
댓글을 달아 주세요
댓글 RSS 주소 : http://www.yongbi.net/rss/comment/701