Programming/Elasticsearch
elasticsearch : 검색 결과별 쿼리 (1) - from/size, sort
byebyeblue
2019. 10. 21. 13:49
elasticsearch 6.4.3 version
elasticsearch를 사용하다 보면 다양한 검색 결과를 필요로 하게 된다.
이 때 사용할 쿼리들을 정리해 보았다.
1. from / size (공식문서)
elasticsearch의 기본 from 값은 0, size 값은 10이다.
따라서 쿼리의 결과로 "hits"의 "total"이 21이 나와도 10개의 결과만 보여진다.
이 때 아래와 같이 size에 값을 지정하여 검색 결과의 최대값을 정할 수 있다.
{
"from":0, "size":30,
"query":{
"match_all":{}
}
}
최대 30개의 결과가 표시되고, size의 최대값은
index setting의 index.max_result_window에 설정된 값을 초과하여 설정할 수 없다.
해당 설정값은 기본적으로 10,000으로 설정되어 있으며 따라서 최대 10,000개의 document를 불러 올 수 있다.
2. sort (공식문서)
sort 쿼리는 특정 필드에 정렬을 추가하는 기능을 한다.
기본적으로 elasticsearch는 _score를 기준으로 내림차순(desc) 정렬을 한다.
다른 항목은 기본적으로 오름차순(asc) 정렬이다.
"title" 필드는 오름차순으로, "rate" 필드와 "_score"는 내림차순으로 정렬하고 싶다면 아래 예제와 같이 작성한다.
{
"sort"{
{"rate":"desc"},
"_score"
},
"query":{
"match_all":{}
}
}