OpenSearch는 하나의 관점으로만 정의하기 어렵습니다.
공식 문서에서도 OpenSearch는 full-text search, vector database, observability, security analytics 등 다양한 사용 사례를 지원하는 검색 및 분석 플랫폼으로 소개됩니다.
실무 관점에서는 OpenSearch를 아래 세 가지 축으로 이해하는 것이 좋습니다.
| 관점 | 핵심 기능 | 대표 사용 사례 | RAG와의 연결 |
|---|---|---|---|
| 검색 엔진 | 텍스트 색인, Query DSL, BM25 score, analyzer | 문서 검색, 상품 검색, FAQ 검색 | keyword retriever, metadata filtering |
| 분석 엔진 | aggregation, time-series log search, dashboard | 로그 분석, 운영 모니터링, 보안 이벤트 분석 | 검색 로그 분석, latency 분석, 실패 질의 분석 |
| 벡터 데이터베이스 | knn_vector, vector search, semantic retrieval | semantic search, RAG, 추천 시스템 | vector retriever, hybrid search |
이 세 가지 기능은 서로 분리된 제품이 아니라 OpenSearch 안에서 함께 사용할 수 있는 기능입니다.
예를 들어 RAG 시스템에서는 하나의 문서 chunk에 대해 다음 정보를 함께 저장할 수 있습니다.
{
"doc_id": "doc-001",
"chunk_id": "doc-001-0001",
"title": "결제 실패 대응 가이드",
"content": "결제 실패가 발생하면 고객에게 결제 수단 확인과 재시도를 안내합니다.",
"content_vector": [0.12, -0.03, 0.44, 0.09],
"source": "payment_policy.md",
"doc_type": "policy",
"created_at": "2026-05-07T00:00:00Z"
}
이 문서는 다음 방식으로 검색될 수 있습니다.
content필드: full-text searchsource,doc_type: metadata filtercontent_vector: semantic vector searchcreated_at: 최신 문서 필터링 또는 운영 분석
왜 필요한가 #
RAG 시스템을 단순히 “문서 embedding을 저장하고 유사도 검색하는 시스템”으로 설계하면 실무에서 한계가 빠르게 나타납니다.
예를 들어 다음 질문들을 비교해보겠습니다.
| 사용자 질문 | 중요한 검색 방식 |
|---|---|
E1023 오류 해결 방법 알려줘 | 정확한 코드 matching이 중요하므로 keyword search가 유리 |
결제 실패 시 고객에게 어떻게 안내해야 해? | 표현이 다양할 수 있으므로 semantic vector search가 유리 |
2025년 이후 업데이트된 보안 정책만 찾아줘 | date, doc_type metadata filter가 중요 |
최근 검색 실패가 많은 문서 유형은? | aggregation 기반 분석이 중요 |
좋은 RAG 검색 계층은 하나의 검색 방식에만 의존하지 않습니다.
OpenSearch를 사용하면 keyword search, vector search, metadata filter, aggregation을 같은 플랫폼 안에서 결합할 수 있습니다.
RAG 관점에서의 의미 #
OpenSearch의 세 가지 역할은 RAG의 서로 다른 문제를 해결합니다.
| RAG 문제 | 필요한 OpenSearch 역할 | 설명 |
|---|---|---|
| 정확한 용어를 찾아야 함 | 검색 엔진 | 에러 코드, 제품명, 정책명, 고유명사 검색 |
| 의미적으로 유사한 내용을 찾아야 함 | 벡터 데이터베이스 | query embedding과 document embedding 유사도 검색 |
| 검색 품질을 분석해야 함 | 분석 엔진 | 검색 로그, latency, result_count, source 분포 집계 |
| 권한·출처·날짜 조건을 반영해야 함 | 검색 엔진 + 분석 엔진 | bool filter, range filter, aggregation 활용 |
| 추천/연관 문서로 확장해야 함 | 벡터 데이터베이스 | item embedding 기반 nearest neighbor 검색 |
따라서 OpenSearch 기반 RAG의 핵심은 다음처럼 볼 수 있습니다.
검색 엔진 관점: 어떤 문서가 키워드상 관련 있는가?
분석 엔진 관점: 검색이 잘 되고 있는가?
벡터 DB 관점: 어떤 문서가 의미적으로 가까운가?
이 세 질문을 동시에 다룰 수 있을 때, RAG 시스템은 단순 데모가 아니라 운영 가능한 검색 기반 지식 시스템이 됩니다.