쿼리 확장(Query Expansion)이란? AI 검색이 질문을 넓혀 찾는 방법
TL;DR
쿼리 확장(Query Expansion)은 사용자가 입력한 검색어에 동의어, 철자 변형, 관련 표현, 의미가 비슷한 질의를 더해 검색 범위를 넓히는 기법입니다. 사내 문서 검색이나 RAG에서 원래 질문과 표현이 다른 문서까지 후보로 찾을 때 유용합니다. 다만 범위를 너무 넓히면 관련 없는 결과도 늘어납니다. 원래 검색어의 의도를 보존하고, 확장 전 결과와 확장 후 결과를 비교하며, 최종 답변의 출처와 문서 접근 권한을 따로 확인해야 합니다.
핵심 3줄 요약
- 핵심 1
쿼리 확장은 검색어를 버리지 않고 찾을 표현을 넓힙니다. 동의어, 약어, 맞춤법 변형, 의미가 가까운 여러 질의를 검색 후보에 보탭니다. - 핵심 2
AI 검색과 RAG는 먼저 문서를 잘 찾아야 답변 품질을 높일 수 있습니다. 문서에 질문과 다른 표현이 쓰였을 때 쿼리 확장이 후보 누락을 줄이는 데 도움을 줍니다. - 핵심 3
더 많이 찾는 것이 곧 더 정확하다는 뜻은 아닙니다. 확장 범위가 넓으면 관련 없는 문서, 오래된 문서, 권한 밖의 문서가 섞일 수 있어 평가와 필터링이 필요합니다.
이 글에서 다룰 내용
- 쿼리 확장의 한 문장 정의
- 사내 규정 검색으로 이해하는 쉬운 예시
- 동의어, 맞춤법, AI 생성 질의를 확장에 쓰는 방식
- 쿼리 재작성, 시맨틱 검색, 리랭킹과의 차이
- AI 검색과 RAG에서 적용하는 순서
- 검색 의도 이탈, 지연 시간, 권한 문제를 줄이는 기준
쿼리 확장을 한 문장으로 정의하면 무엇인가요?
한 문장 정의: 쿼리 확장은 사용자의 원래 검색어에 같은 뜻의 단어, 표기 변형, 관련 표현 또는 의미가 비슷한 여러 질의를 더해 검색 시스템이 살펴볼 후보 범위를 넓히는 방법입니다.
Google Cloud Agent Search의 공식 API 문서는 쿼리 확장을 언제 적용할지 정하는 QueryExpansionSpec을 제공합니다. 자동 확장을 켜면 Search API가 쿼리 확장을 수행할 수 있고, 원래 검색어로 찾은 결과를 확장 결과보다 위에 고정하는 옵션도 둡니다.
Microsoft Azure AI Search 문서는 동의어를 쿼리 확장 기법으로 설명합니다. 예를 들어 사용자가 dog를 검색하면 puppy, canine 같은 동의어를 함께 검색하도록 규칙을 만들 수 있습니다. 같은 서비스의 의미 기반 쿼리 재작성은 원래 질의를 여러 의미상 유사한 질의로 바꿔 검색 엔진에 보내는 기능입니다.
여기서 쿼리(Query)는 검색창이나 AI 검색 시스템에 들어오는 질문과 검색어입니다. 확장(Expansion)은 검색할 표현을 보태 후보 문서를 더 넓게 찾는 과정입니다. 쿼리 확장은 답변을 직접 만드는 기능이 아니라, 답변에 쓸 자료를 찾는 검색 단계의 기술입니다.
한 줄 정리: 쿼리 확장은 “사용자가 쓴 표현과 문서에 적힌 표현이 달라도 관련 자료를 놓치지 않게 하는 검색 보조 장치”입니다.
왜 AI 검색과 RAG에서 중요한가요?
첫째, 사람과 문서는 같은 뜻을 서로 다르게 표현합니다. 사용자는 “휴가비 정산”이라고 검색하지만 사내 규정에는 “복리후생비 지급”이나 “비용 청구”라고 적혀 있을 수 있습니다. 원래 단어만 맞추면 관련 문서를 놓치기 쉽습니다.
둘째, 약어와 제품명, 한글·영문 표기가 섞입니다. “검색 증강 생성”, “RAG”, “retrieval augmented generation”은 같은 개념을 가리키는 검색어로 쓰입니다. 도메인에 맞는 동의어와 약어를 함께 다루면 검색 후보를 더 안정적으로 모을 수 있습니다.
셋째, RAG 답변은 검색 단계의 한계를 그대로 받습니다. 관련 문서를 후보로 가져오지 못하면 생성 모델은 그 문서를 근거로 답할 수 없습니다. 쿼리 확장은 생성 단계 이전에 검색 누락을 줄이는 방법 가운데 하나입니다.
넷째, 짧고 모호한 질문을 보완할 수 있습니다. “비용 처리”처럼 짧은 검색어는 의미가 넓습니다. 검색 시스템은 대화 맥락이나 업무 분야를 참고해 “출장비 처리”, “경비 청구”, “법인카드 정산” 같은 후보 질의를 만들 수 있습니다. 이때 원래 의도와 다른 방향으로 퍼지지 않도록 제한해야 합니다.
다섯째, 검색 실패를 바로 빈 답으로 끝내지 않을 수 있습니다. Google Cloud 문서처럼 자동 확장을 지원하는 검색 API는 정확한 검색어로 결과가 부족할 때 확장된 질의를 활용할 수 있습니다. 다만 제품마다 작동 조건과 결과 우선순위가 다르므로 현재 문서를 확인해야 합니다.
핵심 인사이트: 생성형 AI가 답을 잘 쓰는 것만으로는 부족합니다. 질문과 문서의 표현 차이를 줄여 관련 근거를 후보에 올리는 검색 설계가 먼저 필요합니다.
쉬운 예시로 이해해 볼까요?
감자나라ai님이 회사 지식 검색에서 “육아휴직 복귀 후 자리”를 찾는다고 가정해 보겠습니다. 실제 인사 규정에는 “육아휴직자 복직 및 직무 배치”라는 제목이 붙어 있습니다.
정확한 단어만 찾는 검색은 “복귀”와 “자리”가 없는 규정을 놓칠 수 있습니다. 쿼리 확장을 적용하면 “복귀”에 “복직”, “자리”에 “직무 배치” 같은 업무 동의어를 더해 관련 문서를 후보로 가져옵니다.
검색 시스템은 원래 질의와 확장 질의를 각각 실행한 뒤 결과를 합칠 수 있습니다. 같은 문서가 여러 번 잡히면 하나로 합치고, 원래 질의와 가까운 결과를 우선하거나 별도의 리랭커로 순서를 다시 정합니다.
하지만 “자리”를 “좌석”, “공간”, “예약”까지 넓히면 회의실 좌석 예약 문서가 섞일 수 있습니다. 문맥을 보지 않고 단어만 무작정 늘리면 검색 의도가 흐려집니다. 인사 문서라는 범위, 최신 시행일, 사용자의 접근 권한 같은 조건을 함께 적용해야 합니다.
쉬운 비유: 쿼리 확장은 도서관 사서에게 한 검색어만 주는 대신 “이 말과 비슷한 표현으로 적힌 책도 함께 찾아 달라”고 부탁하는 일에 가깝습니다.
쿼리 확장은 어떤 순서로 적용하나요?
1. 원래 질문과 꼭 지켜야 할 조건을 분리합니다
검색 의도, 제품명, 인명, 날짜, 지역, 문서 유형처럼 바꾸면 안 되는 조건을 먼저 찾습니다. 고유명사와 숫자까지 임의로 넓히면 다른 대상의 문서가 섞일 수 있습니다.
2. 확장에 쓸 근거를 고릅니다
조직이 관리하는 동의어 사전, 약어 목록, 철자 교정 규칙, 사용자의 검색 기록, 언어 모델이 만든 질의 변형을 사용할 수 있습니다. 규정·의료·법률처럼 정확성이 중요한 분야에서는 승인된 용어 사전을 우선하는 편이 안전합니다.
3. 확장 질의 수와 범위를 제한합니다
질의 변형이 많을수록 더 많은 문서를 찾지만 지연 시간과 비용, 잡음도 늘어납니다. Microsoft Azure AI Search의 의미 기반 쿼리 재작성처럼 제품이 만들 수 있는 변형 수에 제한을 두는 경우도 있습니다. 실제 서비스에서는 업무 목표에 맞는 상한을 정합니다.
4. 원래 질의와 확장 질의를 검색합니다
원래 검색어 결과를 유지한 채 동의어·재작성 질의 결과를 추가할 수 있습니다. Google Cloud Agent Search는 확장이 일어났을 때 확장하지 않은 결과를 위에 고정하는 옵션을 제공합니다.
5. 결과를 합치고 중복을 제거합니다
같은 문서가 여러 질의에서 검색되면 하나로 합칩니다. 문서 ID, URL, 버전, 수정일 같은 기준을 함께 써야 같은 내용의 복사본이 상위 결과를 차지하지 않습니다.
6. 필터와 리랭킹으로 순서를 다듬습니다
검색 후보를 넓힌 뒤에는 권한, 문서 상태, 날짜, 언어 같은 필터를 적용합니다. 리랭킹은 모은 후보 가운데 원래 질문과 더 가까운 문서를 위로 올립니다. 쿼리 확장과 리랭킹은 서로 다른 단계지만 함께 쓰기 좋습니다.
7. 확장 전후 품질을 기록합니다
원래 질의, 만들어진 확장 질의, 검색된 문서, 최종 선택 문서, 사용자의 클릭이나 답변 평가를 함께 기록합니다. 민감한 검색어는 로그에서 가리거나 보존 기간을 제한해야 합니다.
실전 팁: 처음부터 AI가 질의를 마음대로 늘리게 하지 말고, 자주 실패하는 실제 검색어 20~50개로 작은 동의어 사전과 평가 목록을 만든 뒤 확장 범위를 넓혀 보세요.
비슷한 용어와 무엇이 다른가요?
쿼리 확장과 쿼리 재작성의 차이
쿼리 확장은 원래 검색어에 여러 표현을 보태 검색 범위를 넓히는 목적을 가리킵니다. 쿼리 재작성(Query Rewriting)은 원래 질의를 더 검색하기 좋은 문장으로 바꾸거나 여러 변형 질의로 만드는 과정입니다. 제품 문서에서는 두 표현이 겹쳐 쓰이기도 합니다. 핵심은 원래 질의를 유지하는지, 대체하는지, 여러 질의를 함께 실행하는지를 확인하는 것입니다.
쿼리 확장과 맞춤법 교정의 차이
맞춤법 교정은 잘못 입력한 철자나 표기를 고쳐 더 적절한 검색어로 바꿉니다. 쿼리 확장은 철자 교정을 포함할 수 있지만 동의어와 관련 표현까지 범위를 넓힙니다. Google Cloud SearchResponse는 교정된 질의와 확장이 일어났는지 여부를 서로 다른 응답 정보로 제공합니다.
쿼리 확장과 동의어 검색의 차이
동의어 검색은 미리 정한 같은 뜻의 단어나 표현을 함께 찾는 방식입니다. 쿼리 확장은 동의어뿐 아니라 약어, 표기 변형, 철자 유사어, 언어 모델이 만든 의미상 유사 질의까지 포함하는 더 넓은 개념으로 볼 수 있습니다.
쿼리 확장과 시맨틱 검색의 차이
시맨틱 검색은 단어가 정확히 같지 않아도 의미가 가까운 문서를 찾는 검색 방식입니다. 쿼리 확장은 검색 요청 자체를 여러 표현으로 넓힙니다. 둘은 함께 쓸 수 있지만 같은 기술은 아닙니다. 시맨틱 검색을 쓴다고 모든 약어와 업무 용어가 자동으로 정확히 처리된다는 보장도 없습니다.
쿼리 확장과 리랭킹의 차이
쿼리 확장은 검색할 후보를 넓히는 단계입니다. 리랭킹(Reranking)은 이미 찾은 후보의 순서를 다시 매기는 단계입니다. 확장으로 놓친 문서를 더 찾고, 리랭킹으로 그중 질문과 가까운 문서를 위에 올리는 식으로 연결합니다.
쿼리 확장과 RAG의 차이
RAG는 외부 문서를 검색해 생성 모델의 답변 근거로 넣는 전체 방식입니다. 쿼리 확장은 RAG의 검색 단계에서 쓸 수 있는 기법 가운데 하나입니다. 쿼리 확장 없이도 RAG를 만들 수 있고, 쿼리 확장만으로 생성 답변이 자동으로 정확해지는 것도 아닙니다.
비교 정리: 맞춤법 교정은 표기 오류를 고치고, 쿼리 확장은 찾을 표현을 넓히며, 시맨틱 검색은 의미로 후보를 찾고, 리랭킹은 찾은 후보의 순서를 다시 정합니다.
AI 제품과 자동화에서는 어디에 쓰이나요?
사내 문서 검색과 지식봇
부서마다 다른 용어, 약어, 이전 제도명을 함께 검색합니다. 인사·보안·재무처럼 문서 권한이 중요한 영역에서는 확장 뒤에도 원래 접근 권한 필터를 그대로 적용해야 합니다.
고객지원 검색
고객이 쓰는 일상 표현을 제품 도움말의 공식 용어와 연결합니다. “결제가 두 번 됐어요”를 “중복 결제”, “이중 청구”와 함께 찾는 식입니다. 고객의 표현을 그대로 모아 동의어 사전을 개선할 수 있습니다.
전자상거래와 상품 검색
“운동화”, “스니커즈”, 브랜드별 제품군 이름처럼 같은 상품을 가리키는 표현을 연결합니다. 너무 넓은 확장은 구매 의도와 다른 상품을 섞을 수 있으므로 카테고리와 속성 필터를 함께 사용합니다.
다국어 검색
한글 용어와 영문 약어를 함께 찾습니다. 다만 단순 번역만으로는 지역별 제도명과 제품명이 정확히 맞지 않을 수 있어 언어별 평가 자료가 필요합니다.
에이전트의 도구 검색
AI 에이전트가 많은 도구와 문서 가운데 필요한 항목을 찾을 때 질의를 여러 표현으로 바꿀 수 있습니다. 도구 선택까지 자동으로 이어진다면 검색 결과를 바로 실행하지 말고 권한과 매개변수를 다시 확인합니다.
한 줄 정리: 쿼리 확장은 사용자의 말과 시스템의 용어가 어긋나는 지점에서 특히 유용하지만, 최종 선택과 실행 권한까지 대신 판단하지는 않습니다.
사용할 때 무엇을 주의해야 하나요?
첫째, 검색 의도 이탈을 측정합니다. 관련 문서를 더 찾는 재현율은 좋아져도 관련 없는 결과가 늘어 정밀도가 떨어질 수 있습니다. 검색 결과 수만 보지 말고 상위 결과가 실제 질문을 해결하는지 평가합니다.
둘째, 고유명사와 부정 조건을 함부로 바꾸지 않습니다. 제품 버전, 날짜, 지역, “제외”, “아님” 같은 조건이 사라지면 전혀 다른 문서가 검색됩니다. 확장 가능한 표현과 고정할 조건을 나눕니다.
셋째, 오래된 동의어 사전을 관리합니다. 조직 개편, 제품명 변경, 정책 폐지 뒤에도 예전 매핑이 남으면 잘못된 문서가 상위에 올라옵니다. 담당자와 검토 주기를 정합니다.
넷째, 지연 시간과 비용을 확인합니다. 질의를 여러 개 실행하거나 언어 모델로 재작성하면 검색 호출과 계산량이 늘어납니다. 확장 질의 수, 시간 제한, 캐시 기준을 정합니다.
다섯째, 권한 필터를 확장보다 뒤로 미루지 않습니다. 검색어를 넓혀도 사용자가 볼 수 없는 문서가 후보나 답변에 노출되면 안 됩니다. 문서 접근 권한은 모든 확장 질의와 결과 병합 단계에 일관되게 적용합니다.
여섯째, 확장 결과를 사실 검증으로 착각하지 않습니다. 더 많은 문서를 찾았다는 사실은 그 문서가 최신이거나 정확하다는 뜻이 아닙니다. 문서 소유자, 시행일, 출처, 버전을 확인합니다.
일곱째, 민감한 검색 로그를 보호합니다. 사용자의 질의와 확장 질의에는 고객명, 질병, 인사 정보, 내부 프로젝트명이 들어갈 수 있습니다. 저장 목적, 접근 권한, 가림 처리, 보존 기간을 정합니다.
주의: 쿼리 확장의 목표는 결과 수를 최대화하는 일이 아닙니다. 원래 질문의 의도를 지키면서 필요한 문서를 덜 놓치는 것이 목표입니다.
자주 묻는 질문
Q1. 쿼리 확장을 쓰면 검색 결과가 항상 좋아지나요?
아닙니다. 질문과 관련된 표현을 잘 보태면 누락을 줄일 수 있지만, 너무 넓히면 관련 없는 문서도 늘어납니다. 실제 검색 질문으로 확장 전후의 상위 결과를 비교해야 합니다.
Q2. 쿼리 확장과 쿼리 재작성은 같은 말인가요?
제품과 문서에 따라 겹쳐 쓰입니다. 일반적으로 확장은 원래 질의에 여러 표현을 더하는 목적을 강조하고, 재작성은 원래 질의를 고치거나 다른 형태로 만드는 과정을 강조합니다. 원래 질의를 유지하는지와 몇 개의 변형을 실행하는지를 제품 문서에서 확인하세요.
Q3. 벡터 검색을 쓰면 쿼리 확장이 필요 없나요?
반드시 그렇지는 않습니다. 벡터 검색은 의미가 가까운 문서를 찾는 데 강하지만 조직 약어, 제품 코드, 최신 제도명, 부정 조건을 항상 정확히 처리하지는 못합니다. 실제 실패 사례가 있다면 동의어 규칙이나 제한된 쿼리 확장을 함께 시험할 수 있습니다.
Q4. 챗GPT에게 검색어를 여러 개 만들어 달라고 하면 쿼리 확장인가요?
검색어 후보를 만든다는 점에서는 쿼리 확장에 활용할 수 있습니다. 다만 생성된 표현이 원래 의도를 벗어나거나 존재하지 않는 제품명과 정책명을 만들 수 있습니다. 고정 조건을 명시하고, 만들어진 질의를 검토한 뒤 검색에 사용하세요.
Q5. 쿼리 확장 성능은 무엇으로 평가하나요?
관련 문서를 얼마나 놓치지 않는지, 상위 결과에 관련 문서가 얼마나 많이 있는지, 사용자가 답을 찾는 데 걸린 시간, 클릭과 해결률을 함께 봅니다. RAG라면 최종 답변이 올바른 문서를 인용했는지도 확인해야 합니다.
출처
마무리
쿼리 확장은 사용자의 검색어에 동의어와 표현 변형, 의미가 비슷한 질의를 더해 관련 문서 후보를 넓히는 방법입니다. AI 검색과 RAG에서는 질문과 문서의 표현이 다를 때 검색 누락을 줄이는 데 쓸 수 있습니다.
감자나라ai님이 쿼리 확장을 검토할 때는 “어떤 표현을 더할 것인가”만 보지 말고 “원래 의도를 어디까지 보존할 것인가, 관련 없는 결과가 얼마나 늘었는가, 모든 결과에 권한 필터가 적용됐는가”를 함께 확인해 보세요. 이 세 가지가 검색 범위를 넓히면서 품질과 안전을 지키는 기준입니다.
