elastic search search api 중 query dsl
Elasticsearch의 Query DSL (Domain Specific Language)은 Elasticsearch에서 데이터를 검색하기 위한 강력하고 유연한 쿼리 언어입니다. Query DSL을 사용하면 다양한 검색 요구 사항에 맞춰 복잡한 검색 쿼리를 구성할 수 있습니다. 여기에는 Query DSL의 주요 특징과 구성 요소에 대한 개요를 드리겠습니다. ### 주요 특징 1. **유연성**: Query DSL은 다양한 검색 요구 사항을 충족시키기 위해 다양한 쿼리 타입을 조합할 수 있는 유연성을 제공합니다. 2. **강력한 검색 기능**: 텍스트 검색, 범위 검색, 정확도 조절, 불리언 조합 등을 포함하여 매우 복잡한 검색 쿼리를 작성할 수 있습니다. 3. **JSON 기반 구조**: 쿼리는 JSON 형식으로 작성되며, 이는 Elasticsearch와의 통신에서 사용되는 주된 형식입니다. ### 핵심 구성 요소 1. **기본 쿼리 타입**: - **Match Query**: 텍스트/키워드 필드에서 텍스트를 검색합니다. 텍스트 분석이 적용되어 유연한 검색을 지원합니다. - **Term Query**: 정확한 용어를 검색합니다. 텍스트 분석을 거치지 않습니다. - **Range Query**: 숫자, 날짜, 문자열 범위 내의 값에 대해 검색합니다. 2. **복합 쿼리**: - **Bool Query**: 여러 쿼리를 `must`, `should`, `must_not`, `filter` 조건으로 조합합니다. - `must`: 조건을 충족해야 합니다. - `should`: 하나 이상의 조건을 충족하는 것이 좋습니다 (옵션). - `must_not`: 조건을 충족하지 않아야 합니다. - `filter`: 조건을 충족해야 하지만 점수(...