Contents
블로그

검색하면 관련 없는 결과가 나와요

단어 검색과 의미 검색의 점수를 조정해 관련성 높은 결과부터 보여주는 방법을 설명해요

2026-08-23 · 읽는 시간 5분

검색

단어 검색과 의미 검색의 점수를 같은 기준으로 조정해야 합니다.

제품 코드처럼 글자가 정확히 일치해야 하는 검색과 자연어 질문처럼 뜻이 가까워야 하는 검색은 결과를 찾는 기준이 다릅니다. 두 검색 결과를 함께 사용할 때는 점수를 그대로 더하지 말고 같은 기준으로 조정한 뒤, 최종 점수가 높은 결과부터 보여줘야 해요. UQA로 단어 검색과 의미 검색의 점수를 조정해 관련성 높은 결과부터 보여줄 수 있습니다.

1. 관련 없는 결과가 나오는 이유: 단어 검색과 의미 검색의 차이

제품 코드에는 단어 검색을, 자연어 질문에는 의미 검색을 사용하는 예시
  • 제품 코드를 검색했는데 다른 상품이 나오거나, 자연어로 질문했는데 관련 없는 문서가 표시될 수 있습니다.

    • 제품 코드와 자연어 질문에 필요한 검색 방식이 서로 다르기 때문이에요.

  • 단어 검색은 입력한 글자와 정확히 일치하는 내용을 찾습니다.

    • ‘TX-750’을 검색하면 문서에 ‘TX-750’이 정확히 들어 있는 상품을 찾아요.

    • 제품 코드, 사람 이름, 조항 번호처럼 정확한 글자 일치가 필요할 때 적합합니다.

    • ‘환불’과 ‘결제 취소’처럼 뜻은 같지만 표현이 다르면 문서를 찾지 못할 수 있어요.

  • 의미 검색은 글자가 달라도 뜻이나 내용이 가까운 문서를 찾습니다.

    • ‘환불’을 검색했을 때 ‘결제 취소’가 적힌 문서도 찾을 수 있어요.

    • ‘주문을 없던 일로 하고 싶어요’라는 질문에서 결제 취소 안내를 찾는 방식입니다.

    • ‘7조’처럼 정확한 숫자가 중요한 검색에서는 다른 조항을 먼저 보여줄 수 있어요.

2. 단어 검색과 의미 검색 결과를 함께 정렬하는 방법

  • 단어 검색과 의미 검색을 함께 실행해 하나의 결과 목록으로 정리하는 구성을 하이브리드 검색이라고 합니다.

    • 정확히 일치하는 문서와 표현이 달라도 뜻이 가까운 문서를 함께 찾아 검색 누락을 줄일 수 있어요.

  • 단어 검색과 의미 검색의 점수는 계산 기준과 숫자 범위가 달라 그대로 비교할 수 없습니다.

    • 100점 만점의 점수와 1점 만점의 점수를 그대로 더해 순서를 정할 수 없는 것과 같아요.

    • 두 점수를 같은 기준으로 조정한 뒤 최종 점수를 계산하고, 최종 점수가 높은 결과부터 정렬해야 합니다.

  • 점수를 조정하면 검색어에 맞는 방식이 결과 순서에 올바르게 반영됩니다.

    • ‘TX-750’을 검색하면 정확히 일치하는 ‘타프 쉘터 TX-750’이 먼저 표시돼야 해요.

    • ‘주문을 없던 일로 하고 싶어요’를 검색하면 뜻이 가장 가까운 결제 취소 안내가 먼저 표시돼야 합니다.

3. UQA로 검색 결과 병합과 동기화 코드 줄이기

기존 데이터베이스와 벡터DB를 따로 연결하는 방식과 UQA에서 함께 검색하는 방식 비교
  • 기존 데이터베이스가 단어 검색만 제공하면 의미 검색을 위해 별도 벡터DB를 추가할 수 있습니다.

    • 앱이 두 저장소에 검색을 요청하고 결과를 합쳐야 해요.

    • 상품이나 문서가 바뀔 때 원문과 임베딩을 두 곳에서 함께 갱신해야 합니다.

    • 단어 검색 시스템과 의미 검색 시스템의 점수 기준이 달라 결과 순서를 조정하는 코드도 필요해요.

  • UQA는 단어 검색과 의미 검색을 함께 실행하고 점수를 조정해 하나의 결과 목록을 반환합니다.

    • 상품 정보와 임베딩을 함께 저장하므로 앱은 UQA에 한 번만 검색을 요청하면 돼요.

    • 별도 검색 결과 병합과 원문·임베딩 동기화 코드를 줄일 수 있습니다.

    • 점수 기준을 SQL에서 바꾸고 같은 검색어를 다시 실행해 결과 순서를 바로 비교할 수 있어요.

  • 서로 다른 검색 점수를 조정해 하나의 순서로 정렬하는 방법은 여러 검색 기술에서도 사용합니다.

4. UQA로 검색 결과 점검하고 수정하기

  • 현재 검색 구조 점검

    • 검색창 입력이 어떤 API와 함수로 전달되는지 확인합니다.

    • 단어 검색과 의미 검색 가운데 현재 실행 중인 검색과 점수 계산·정렬 기준을 확인해요.

  • UQA 검색으로 수정

    • 제품 코드가 정확히 일치하면 단어 검색 점수를 높게 반영합니다.

    • 자연어 질문에는 상품명과 설명의 뜻이 가까운 결과에 의미 검색 점수를 반영해요.

    • 두 점수를 조정하고 최종 점수가 높은 결과부터 정렬합니다.

  • 검색 결과 검증

    • 제품 코드와 정확한 상품명, 자연어 질문을 차례로 검색합니다.

    • 원하는 결과가 먼저 표시되지 않으면 원인을 확인하고 점수 기준을 조정한 뒤 다시 검증해요.

현재 검색 구조 점검 프롬프트

현재 프로젝트에서 상품 검색이 동작하는 경로를 점검해줘 - 검색창 입력을 전달하는 API와 함수 - 단어 검색과 의미 검색 가운데 현재 실행 중인 검색 - 단어 검색 점수와 의미 검색 점수를 계산하는 코드와 검색 대상 필드 - 최종 상품 순서를 정하는 점수와 정렬 방향 - 상품명, 설명, URL 가운데 현재 반환하고 화면에 표시하는 항목 파일명과 함수명을 근거로 정리하고, 아직 코드는 수정하지 말아줘

UQA 검색으로 수정하는 프롬프트

점검 결과를 바탕으로 상품 검색에서 UQA의 단어 검색과 의미 검색을 함께 실행하도록 수정해줘 - 제품 코드와 상품명이 정확히 일치하면 해당 상품에 단어 검색 점수 반영 - 상품명과 설명의 뜻이 자연어 질문과 가까우면 해당 상품에 의미 검색 점수 반영 - 단어 검색 점수와 의미 검색 점수를 비교할 수 있도록 조정한 뒤 최종 점수가 높은 상품부터 정렬 - 검색 결과에 상품명, 설명, URL을 포함하고 기존 검색창에 표시 수정한 파일, 검색 대상 필드, 점수 조정 기준을 함께 정리해줘

검색 결과 검증 프롬프트

수정한 상품 검색을 실제로 실행해서 검증해줘 테스트 데이터에서 제품 코드가 있는 상품 하나를 선택하고 다음 입력을 차례로 검색해줘 1. 제품 코드 2. 정확한 상품명 3. 상품명과 제품 코드를 포함하지 않은 자연어 질문 각 입력에서 처음 반환된 상품 5개를 상품명, 설명, URL, 단어 검색 점수, 의미 검색 점수, 최종 점수와 함께 표로 정리해줘. 제품 코드와 정확한 상품명 검색에서는 일치하는 상품이 첫 번째인지 확인하고, 자연어 질문에서는 설명의 뜻이 가장 가까운 상품이 첫 번째인지 확인해줘. 기준을 충족하지 못하면 원인과 수정한 점수 기준을 설명한 뒤 다시 검증해줘