Query DSL

원본 보기

Query DSL

참고

Query DSL에 대한 개요와 개념 정보는 Query DSL 개요탐색 및 분석 섹션에서 참조하세요.

Elasticsearch는 쿼리를 정의할 수 있도록 JSON 기반의 완전한 Query DSL(Domain Specific Language)을 제공합니다. Query DSL은 다음 두 가지 유형의 절로 구성된 쿼리의 AST(Abstract Syntax Tree)라고 생각할 수 있습니다.

리프 쿼리 절
리프 쿼리 절은 match, term, range 쿼리처럼 특정 필드에서 특정 값을 찾습니다. 이러한 쿼리는 단독으로 사용할 수 있습니다.
복합 쿼리 절
복합 쿼리 절은 다른 리프 또는 복합 쿼리를 감싸며, 여러 쿼리를 논리적으로 결합하거나(bool 또는 dis_max 쿼리 등) 동작을 변경하는 데 사용됩니다(constant_score 쿼리 등).

쿼리 절은 쿼리 컨텍스트 또는 필터 컨텍스트 중 어디에서 사용되는지에 따라 다르게 동작합니다.

비용이 많이 드는 쿼리 허용

특정 유형의 쿼리는 구현 방식 때문에 일반적으로 실행 속도가 느리며, 이는 클러스터 안정성에 영향을 줄 수 있습니다. 이러한 쿼리는 다음과 같이 분류할 수 있습니다.

search.allow_expensive_queries 설정 값을 false로 지정하면 이러한 쿼리가 실행되지 않도록 할 수 있습니다(기본값은 true).