문서 검색은 주로 비구조적 자유 텍스트(문서에 한정되지 않음)에서 작동하는 검색입니다. 웹 페이지를 검색하거나 제품을 찾거나 큐레이트된 콘텐츠로 작업할 때 검색 엔진을 사용합니다. 웹 페이지로 이동하여 검색 텍스트 상자에 입력합니다. "검색"을 클릭하면 정보 목표를 충족하는 관련 항목을 받을 수 있습니다.

검색 엔진은 데이터베이스 기술에서 발전하여 데이터를 저장하고 해당 데이터에 대한 쿼리를 처리합니다. 기존의 데이터베이스는 주로 구조적 콘텐츠와 함께 작동합니다. 데이터는 스키마가 내장된 테이블과 열로 구성됩니다. 데이터베이스의 역할은 쿼리를 기반으로 열의 값과 일치하는 모든 데이터 행을 검색하는 것입니다. 검색 엔진은 메타데이터와 큰 블록의 비구조적 텍스트(자유 텍스트)를 모두 포함하는 구조적 데이터(문서)와 함께 작동합니다. 검색 엔진은 언어 규칙을 사용하여 이러한 큰 텍스트 블록을 일치하는 용어로 나눕니다. 또한 검색 엔진에는 검색 결과를 정렬하고 최상의 검색 결과를 최상단에 표시할 수 있는 순위 기능이 내장되어 있습니다. 관계형 및 NoSQL 데이터베이스는 모든 결과를 검색하고 검색 엔진은 최상의 결과를 검색합니다.

검색 엔진의 애플리케이션은 크게 세 가지 범주로 나뉩니다. 주로 비구조적 자유 텍스트에서 작동하는 문서 검색, 구조적 데이터와 비구조적 데이터가 함께 있을 때 작동하는 전자 상거래 검색, 그리고 대부분 구조적 데이터에서 작동하는 쿼리 오프로드입니다.

문서 검색이 메타데이터와 함께 작동하나요?

문서 검색에서는 단락만큼 작고, 수천 페이지만큼 큰 주요 문서를 검색합니다. 문서에는 구조적 텍스트 필드(제목요약), 반구조적 필드(작성자) 및 구조적 필드(공개 날짜, 기안 그룹, 카테고리)를 포함하여 다양한 기타 필드, 즉 메타데이터가 포함됩니다. 검색 엔진은 사용자 쿼리에서 텍스트와 메타데이터의 혼합을 처리합니다.

문서 검색의 주요 과제는 두 가지 영역(데이터 준비 및 수집, 검색 관련성)으로 나뉩니다.

문서 검색 사용 사례에서 문서 본문(말뭉치)은 사용자 생성 콘텐츠 또는 기타 큐레이트되지 않은 콘텐츠에서 비롯됩니다. 이 콘텐츠에는 일반적으로 오타 또는 기타 오류, 반복 및 엉터리 데이터가 포함되어 있습니다. 이 데이터를 검색 엔진에 로드하기 전에 데이터를 큐레이트, 정리 및 일반화해야 합니다. 데이터가 준비되면 해당 데이터를 엔진에 로드해야 합니다(수집 API를 호출하여). 마지막으로, 문서가 변경됨에 따라 문서를 업데이트하는 프로세스가 필요합니다.

문서 검색의 핵심 가치는 사용자의 쿼리와 관련된 문서인 검색 관련성을 검색하는 것입니다. 검색하는 동안 검색 엔진은 통계적 측정(BM25)을 통해 모든 일치하는 문서에 점수를 매기고 정렬합니다. BM25는 일치하는 문서에 있는 검색어 수와 교차하는 검색어의 고유성을 사용합니다. 쿼리가 고유 용어와 일치하는 횟수가 많을수록 점수가 높아집니다. 특정 데이터 세트에 대한 점수 기능을 조정해야 합니다. 기계 학습(ML) 기술이 순위를 높이는 데 도움이 됩니다. 검색은 검색하는 문서의 관련성만큼만 유효하며, 여러분은 최상의 결과를 원합니다.

다른 검색 사용 사례에는 어떤 것이 있나요?

전자 상거래 검색 

전자 상거래 엔진으로 이동하여 사용 가능한 제품의 카탈로그에서 상품을 찾아보고 구매할 수 있습니다. 이러한 제품은 제목, 제품 설명리뷰와 같은 긴 필드와 함께 많은 메타데이터 필드(크기, 색상, 브랜드 등)로 구성됩니다. 엔진의 주요 작업은 가장 관련성이 높은 결과를 검색하여 수익을 가져오는 것입니다. 사이트 디자이너는 좋은 관련성 기능을 구축하기 위해 임베디드 수치에서 사용자 행동에 기반한 ML 모델에 이르기까지의 많은 도구를 사용합니다.

최종 사용자 경험을 개선하기 위해, 전자 상거래 사이트는 자주 패싯 검색을 추가합니다. 엔진은 다양한 필드(사이즈, 색상 등)의 값에 대해 버킷 카운트를 제공하며 UI에서 사용자에게 결과 범위를 좁히는 데 사용하는 클릭 가능한 목록을 제공합니다.

전자 상거래 검색의 일부 유형은 개인화 및 권장 사항에 크게 의존합니다. 쇼핑객이 “드레스”를 검색하는 경우, 검색 엔진은 쿼리 자체가 매우 제한이 없더라도 고객이 관심을 가질 만한 드레스를 찾아야 합니다. k-NN(k-최근점 이웃)과 같은 유사성 지표가 이를 돕습니다.

큐레이트된 데이터 세트 검색

엔터프라이즈 문서 리포지토리와 같은 큐레이트된 데이터 세트 검색입니다(임상 시험 데이터, 법률 개요, 부동산 등). 검색 엔진에는 큰 텍스트 블록을 일치를 위해 구성 요소 용어(필드 또는 큰 텍스트 블록의 단어)로 나누는 데 도움이 되는 언어 규칙 및 기타 언어별 기능이 포함되어 있습니다. “롱 슬리브리스 드레스”와 같은 풍부한 쿼리 언어를 사용하면 이러한 큰 텍스트 블록에서 용어의 조합을 검색할 수 있습니다. 그러나 엔진은 일치하는 모든 항목을 검색하지 않습니다. 관련성 점수를 사용하여 문서의 순위를 매기고 정렬하여 가장 일치하는 항목만 반환합니다.

쿼리 오프로드

검색 엔진에는 대량의 대기 시간이 짧은 검색을 용이하게 하는 특수 데이터 구조가 포함되어 있습니다. 이러한 구조 중 가장 중요한 것은 역 인덱스로, 개별 용어를 이러한 용어가 포함된 문서 목록에 매핑합니다. 이러한 데이터 구조 때문에 검색 엔진은 쿼리 처리를 위한 관계형 데이터베이스를 능가합니다. 단점은 검색 엔진이 관계형이 아니라는 것입니다. 텐덤 관계형 데이터베이스와 검색 엔진은 일반적으로 볼 수 있습니다. 관계형 데이터베이스를 사용하여 애플리케이션 데이터를 제공하고, 검색 엔진을 사용하여 해당 데이터에 대해 대기 시간이 짧은 관련 검색을 제공합니다.

풍부하고 즐거운 검색 환경을 구축하는 데는 많은 직무가 필요합니다. 개발자는 검색 솔루션을 통합하고, 검색 인터페이스를 만들고, 최상의 검색 결과를 얻기 위해 데이터를 구조화하는 방법을 이해합니다. 제품 관리자는 메타데이터 구조 및 검색 인터페이스 사용자 경험에 대한 요구 사항을 제공합니다. 데이터 과학자는 소스 데이터를 큐레이트하고 사용자 행동을 추적하고 작업합니다. 경영진은 제품 및 개발 팀이 엔진의 비즈니스 목표를 충족하도록 안내하는 비즈니스 KPI를 설정합니다.

검색 엔진은 검색어와 일치하도록 최적화되었습니다. “8피트 소파”를 검색하면 8피트 소파의 결과를 얻을 수 있으며 “8”, “피트”, “소파”를 일치시켜 이를 수행합니다. 이는 키워드 검색입니다. 많은 경우, 검색하는 사람은 자신이 찾고 있는 정확한 용어를 모르고 의미에 의해 검색하기를 원합니다. 이는 의미 체계 검색이며 검색 및 ML 기술의 첨단에 있습니다. 의미 체계 검색으로 “불 옆에 앉기 위해 편안한 장소”와 같은 쿼리를 사용하여 8피트 소파와 같은 항목을 검색할 수 있습니다.

의미 체계 검색은 ML 기술이 필요합니다. 항목 및 쿼리의 벡터 공간을 구축한 다음 벡터 유사성 계산을 사용하여 해당 공간에서 가까운 항목을 찾아야 합니다. 벡터 검색을 사용하면 문서가 관련성을 위해 쿼리와 공통되는 단어 또는 동의어가 필요하지 않습니다. 예를 들어, “자전거 정비”에 대한 검색은 “변속기 윤활”에 대한 문서와 일치할 수 있습니다. 이는 ML 알고리즘이 “변속기 윤활”이 종종 자전거 유지 관리에 대한 논의에 가깝게 나타난다는 것을 알고 있기 때문입니다.

검색 결과를 개선하려면 어떻게 해야 하나요?

효과적인 문서 및 전자 상거래 검색의 핵심은 관련성입니다. 검색 결과가 검색하는 사람의 요구를 충족하나요? 검색 엔진은 다양한 기술을 사용하여 최상의 결과가 맨 위에 오도록 시도합니다. 이를 관련성 순위라고 부릅니다. 데이터베이스는 일치하는 모든 항목을 반환하고, 검색 엔진은 관련 항목의 점수를 매기기 위해 최적화됩니다.

  • 검색은 차등 가중치로 여러 필드에 걸쳐 있을 수 있습니다. 예를 들어, 영화 데이터베이스를 검색하는 경우, 제목, 감독배우와 같은 필드에 걸쳐 검색하며 배우 일치 항목보다 제목 일치 항목에 더 많은 가중치를 부여할 수 있습니다.
  • 최신성에 대해 검색 결과를 조정하는 것을 고려하세요. 릴리스 날짜 필드를 인덱스에 추가하고 해당 날짜를 기준으로 지수 감쇠 함수를 점수 함수에 추가합니다.
  • 사용자가 특정 요소를 자세히 드릴다운할 수 있도록 검색 결과의 패싯 또는 필터를 추가하는 것을 고려하세요. 많은 문서 검색 시스템이 메타데이터에 대한 패싯을 지원하며, 일반적으로 검색 결과 페이지의 왼쪽에 카테고리로 표시됩니다.
  • 동의어를 추가하는 것을 고려하세요. 동의어는 최종 사용자가 찾고 있는 결과를 찾는 데 도움이 될 수 있습니다. 옷의 경우, 티는 T셔츠 또는 티셔츠입니다. 최종 사용자는 “티”를 검색하든 “t셔츠”를 검색하든 동일한 결과를 찾아야 합니다. 동의어를 추가하면 이러한 결과를 반환할 수 있습니다.

문서 검색은 다양한 애플리케이션에 걸쳐 있습니다.

  • 전자 상거래 사이트는 사용자가 구매하려는 제품을 검색하는 데 문서 검색을 사용합니다.
  • 사진 사이트는 제목설명과 같은 메타데이터 또는 일치하는 이미지 벡터를 기반으로 사진을 찾는 데 문서 검색을 사용합니다.
  • 법적 사용자는 관련 판례법을 찾는 데 문서 검색을 사용합니다.
  • 의사는 환자의 상태에 맞는 약을 찾는 데 문서 검색을 사용합니다.
  • CRM(고객 관계 관리) 솔루션은 메모, 상호 작용 및 대상 고객을 검색하는 데 문서 검색을 사용합니다.

무언가를 찾아야 할 때, 검색 엔진을 사용해 보세요!

AWS 문서 검색 다음 단계

무료 계정에 가입

AWS 프리 티어에 즉시 액세스할 수 있습니다. 

가입 
콘솔에서 구축 시작하기

AWS 관리 콘솔에서 구축을 시작하세요.

로그인