- 전문 쿼리, 매치 쿼리, 용어 쿼리, 멀티 매치 쿼리, 범위 쿼리, 논리 쿼리, 패턴 쿼리등
쿼리 컨텍스트와 필터 컨텍스트
- 쿼리 컨텍스트: 연관성을 계산하여 최대한 비슷한 도큐먼트들을 검색
- 필터 컨텍스트: 결과가 맞는지 아닌지만 확인 하여 도큐먼트를 검색
- 필터 컨텍스트는 스코어를 계산하지 않기 때문에 전체적인 쿼리 속도 증가
- 엘라스틱서치는 기본적으로 힙 메모리의 10%를 캐시에 이용하고 있는데, 캐시를 이용한 빠른 검색을 하려면 필터 컨텍스트를 이용해야 함
Kibana Sample data load
쿼리 컨텍스트
GET kibana_sample_data_ecommerce/_search
_search
는 검색 쿼리를 위해 엘라스틱에서 제공하는 REST API
match
는 전문 검색을 위한 쿼리로, 역인덱싱된 용어를 검색할 때 사용
hits.total.value
은 높은 스코어 순으로 찾은 count
- 쿼리 컨텍스트는 유사도 계산 알고리즘 의해 가장 연관성 높은 도큐먼트를 찾음
_socre
값은 요청한 검색과 유사도를 나타내는 지표로, 일반적으로 값이 클수록 찾고자 하는 확율이 높음
GET kibana_sample_data_ecommerce/_search
{
"query": {
"match": {
"category": "clothing"
}
}
}
필터 컨텍스트
- 논리 쿼리가 나오면서 필터 컨텍스트는 모두 논리 쿼리에 포함
- 필터 컨텍스트를 단독으로 사용하기 보다는 쿼리/필터 컨텍스트를 조합해서 사용하는 방향으로 가는 추세