검색 쿼리 구성
원본 보기검색 쿼리 구성
이 페이지는 검색 활용 사례에 초점을 맞춥니다. 모든 활용 사례를 아우르는 Elastic 쿼리 언어 개요는 전체 개요를 참조하세요.
어떤 검색 방식을 사용해야 할지 정했다면, 이제 검색 쿼리를 만들고 테스트할 수 있습니다. Elasticsearch는 검색 로직을 표현하는 데 도움이 되는 여러 쿼리 인터페이스를 제공합니다.
| 인터페이스 | 엔드포인트 | 설명 |
|---|---|---|
| Query DSL | _search |
Elasticsearch 고유의 JSON 기반 원조 쿼리 언어입니다. 표현력이 뛰어나고 모든 클라이언트 라이브러리에서 폭넓게 지원됩니다. |
| Retrievers | _search |
단일 요청으로 다단계 검색 파이프라인을 구성할 수 있는 조합형 _search API 구문입니다. Query DSL 위에 구축되었습니다. |
| ES|QL | _query |
SQL과 유사한 구문을 가진 파이프 방식 쿼리 언어로, 새로운 컴퓨트 아키텍처 위에 구축되었습니다. 전문 검색, 시맨틱 검색, 하이브리드 검색, 재순위화, 텍스트 생성을 지원합니다. |
이러한 쿼리 인터페이스는 서로 배타적인 것이 아니라 상호 보완적입니다. 구체적인 요구사항에 따라 애플리케이션의 부분마다 서로 다른 인터페이스를 사용할 수 있습니다. 이러한 유연성 덕분에 요구사항이 변화함에 따라 새로운 인터페이스를 점진적으로 도입할 수 있습니다.
다음 지침을 참고해 활용 사례에 가장 적합한 인터페이스를 선택하세요.
다음이 필요할 때 Query DSL을 선택하세요.
- 개별 쿼리 절, 점수 산정, 부스팅에 대한 세밀한 제어
- 가장 폭넓은 에코시스템 지원: 모든 Elasticsearch 클라이언트, 도구, 통합이 Query DSL과 함께 동작합니다
- 다단계 검색 없이
match,bool,term쿼리 같은 단일 단계 쿼리
Query DSL은 기반이 되는 쿼리 언어이며, 특히 단일 검색 전략을 사용하는 경우처럼 단순한 검색 쿼리에는 여전히 올바른 선택입니다.
다음이 필요할 때 retrievers를 선택하세요.
- 단일
_search호출로 다단계 검색 파이프라인 구성(예: 검색, 재순위화, 다양화) - RRF 또는 선형 결합을 사용해 여러 검색 전략 조합
text_similarity_rerankerretriever로 시맨틱 재순위화 적용- 어휘 필드와 시맨틱 필드에 걸친 간단한 하이브리드 검색과 자동 점수 정규화를 위해 다중 필드 쿼리 형식 사용
Retrievers는 Query DSL을 감싸면서 조합 가능성을 더합니다. BM25와 벡터 검색을 결합하거나 재순위화 단계를 추가하는 등 검색이 여러 검색 단계를 포함한다면, retrievers를 사용해 전체 파이프라인을 선언적으로 표현할 수 있습니다.
다음이 필요할 때 ES|QL을 선택하세요.
FORK/FUSE를 사용한 하이브리드 검색,RERANK를 사용한 재순위화,COMPLETION을 사용한 텍스트 생성을 포함해 파이프 구문으로 엔드투엔드 검색 쿼리 구축- 단일 쿼리에서 검색과 집계, 통계 또는 기타 데이터 변환 결합
- Kibana 또는 API에서 익숙한 SQL 유사 구문으로 데이터를 대화식으로 탐색
ES|QL은 워크플로가 검색을 넘어 확장될 때 적합합니다. 예를 들어 단일 파이프 쿼리에서 검색하고, 재순위화하고, 결과를 요약할 수 있습니다.
다음 표는 각 인터페이스에서 사용할 수 있는 기능을 정리한 것입니다.
| 기능 | Query DSL | Retrievers | ES|QL |
|---|---|---|---|
| 전문 검색(BM25) | 지원 | 지원 | 지원 |
| 시맨틱 / 벡터 검색 | 지원 | 지원 | 지원 |
| 하이브리드 검색(점수 결합) | - | 지원(RRF, 선형) | 지원(FORK/FUSE) |
| 시맨틱 재순위화 | - | 지원(text_similarity_reranker) |
지원(RERANK) |
| 결과 다양화(MMR) | - | 지원(diversify) |
지원(MMR) |
| 다중 필드 쿼리 형식 | - | 지원 | - |
| 집계 | 지원 | 지원 | 지원 |
| 텍스트 생성(LLM) | - | - | 지원(COMPLETION) |
| 파이프 변환 | - | - | 지원 |
Elasticsearch REST API를 사용하면 Elasticsearch 클라이언트 라이브러리를 포함한 모든 HTTP 클라이언트로, 또는 Console에서 직접 데이터를 검색할 수 있습니다. UI에서 Discover를 사용해 검색을 실행할 수도 있습니다.
실습형 퀵스타트 가이드로 시작하거나 Python 노트북을 확인해 보세요.