Atlas Search 개요
Atlas Search란 무엇인가요?
Atlas Search는 전체 텍스트 검색 솔루션으로, 관련성 기반 앱 기능을 구축할 수 있는 원활하고 확장 가능한 환경을 제공합니다. 또한 데이터베이스와 함께 별도의 검색 시스템을 실행할 필요가 없습니다.
클러스터에서 세분화된 텍스트 인덱싱 및 데이터 쿼리에 Atlas Search를 사용할 수 있습니다. Atlas Search는 여러 종류의 텍스트 분석기, 복잡한 검색 로직을 생성할 수 있는 풍부한 쿼리 언어, 사용자 지정 가능한 점수 기반 결과 순위 및 자동 완성, 페이지 매김, 패싯과 같은 애플리케이션을 위한 고급 검색 기능을 제공합니다.
사용 사례
Atlas Search는 다음을 비롯하여 다양한 사용 사례를 지원합니다.
입력시 실시간 검색: 사용자가 애플리케이션의 검색 필드 에 문자를
autocomplete
입력할 때 단어를 더욱 정확하게 예측하려면 Atlas Search 연산자 연산자 사용하여 단어 일부를 예측하고 결과를 반환할 수 있습니다. 자세히 학습 자동 완성 및 부분 일치 Atlas Search 쿼리를 실행하는 방법을 참조하세요.패싯 검색: 애플리케이션 사용자가 필터를 사용하여 검색 결과를 좁힐 수 있도록 하려면 Atlas Search 패싯 수집기를 사용하여 패싯 필드의 값이나 범위에 따라 결과를 그룹화하는 패싯을 빌드할 수 있습니다. 자세한 내용은 Atlas Search에서 패싯을 사용하는 방법을 참조하세요.
페이지 매김 결과: 결과 페이지를 그룹화하고 "다음 페이지" 및 "이전 페이지"와 같은 기능을 구현하려면 Atlas Search
searchSequenceToken
을searchAfter
및searchBefore
옵션과 함께 사용하여 페이지를 순서대로 탐색하고 페이지 간에 이동할 수 있습니다. 자세한 내용은 결과 페이지 매기기 방법을 참���하세요.
주요 개념
다음 개념은 Atlas Search의 기초를 형성하며 애플리케이션을 최적화하기 위해 반드시 필요합니다.
검색 쿼리란 무엇인가요?
검색 쿼리는 검색 인덱스를 참조하여 결과 집합을 반환합니다. 검색 쿼리는 보다 일반적인 정보 요구 사항을 충족하기 위한 것이므로 기존의 데이터베이스 쿼리와는 다릅니다. 데이터베이스 쿼리가 엄격한 구문을 따라야 하는 경우, 검색 쿼리는 단순한 텍스트 일치를 위한 것일 수도 있지만 유사한 구문, 숫자 또는 날짜 범위를 찾거나 정규 표현식 또는 와일드카드를 사용할 수도 있습니다.
Atlas Search 쿼리는 집계 파이프라인 단계의 형태를 취합니다. Atlas Search는 $search
및 $searchMeta
단계를 제공하며, 쿼리 파이프라인의 다른 집계 파이프라인 단계와 함께 사용할 수 있습니다. Atlas Search는 또한 이러한 집계 파이프라인 단계에서 사용할 수 있는 쿼리 연산자 및 수집기를 제공합니다.
자세한 내용은 쿼리 및 인덱스를 참조하세요.
검색 인덱스란 무엇인가요?
검색의 맥락에서 인덱스 는 데이터를 쉽게 검색할 수 있는 형식으로 분류하는 데이터 구조입니다. 검색 인덱스를 사용하면 전체 컬렉션을 스캔하지 않고도 특정 용어가 포함된 문서를 더 빠르게 검색할 수 있습니다. Atlas Search 인덱스와 MongoDB 인덱스는 모두 데이터 검색 속도를 높여주지만 동일하지는 않습니다. 책 뒤쪽의 색인과 마찬가지로 검색 인덱스는 용어와 해당 용어가 포함된 문서 간의 매핑입니다. 검색 인덱스에는 문서 내 용어의 위치와 같은 다른 관련 메타데이터도 포함됩니다.
정적 매핑을 사용하여 단일 필드 또는 여러 필드에 Atlas Search 인덱스를 만들 수 있습니다. 또는 동적 매핑을 활성화하여 문서에서 동적 인덱싱이 가능한 모든 필드를 자동으로 인덱싱할 수 있습니다. 다형성 데이터 및 내장 문서에 대해 Atlas Search 인덱스를 생성할 수 있으며, 입력 시 실시간 검색이나 패싯 검색과 같은 특정 사용 사례를 위한 인덱스를 생성할 수도 있습니다.
자세한 내용은 Atlas Search 인덱스 관리를 참조하세요.
검색 분석기와 토큰은 무엇인가요?
검색 인덱스를 생성할 때 데이터는 먼저 일련의 토큰 또는 용어로 변환되어야 합니다. 분석기는 다음과 같은 단계를 통해 이 프로세스를 용이하게 합니다.
토큰화: 문자열의 단어를 인덱싱 가능한 토큰으로 분리하는 작업입니다. 예를 들어 공백과 문장 부호로 문장을 나눕니다.
정규화: 데이터를 일관성 있게 표현하고 분석하기 쉽도록 정리하는 작업을 말합니다. 예를 들어, 텍스트를 소문자로 변환하거나 중지 단어로 불리는 원치 않는 단어를 제거할 수 있습니다.
스테밍: 단어를 어근 형태로 줄이는 작업입니다. 예를 들어 접미사, 접두사 및 복수형 단어 형식을 무시합니다.
토큰화의 세부 사항은 언어에 따라 다르며 추가 선택이 필요할 수 있습니다. 사용할 분석기는 데이터와 애플리케이션에 따라 다릅니다.
Atlas Search는 몇 가지 내장 분석기를 제공하며, 사용자 지정 분석기를 만들 수도 있습니다. 다중 분석기를 사용하여 대체 분석기를 지정할 수 있습니다.
자세한 내용은 분석기를 사용하여 데이터 처리를 참조하세요.
검색 점수란 무엇인가요?
쿼리 결과의 각 문서에는 관련성 점수가 부여되어 관련성이 가장 높은 문서부터 가장 낮은 문서 순으로 쿼리 결과를 반환할 수 있습니다. 가장 간단한 형태의 점수 산정에서 문서는 쿼리 텀이 문서에 자주 나타나는 경우 문서 점수를 높이고 컬렉션의 쿼리어가 여러 문서에 나타나면 낮은 점수를 줍니다. 채점도 사용자 지정할 수 있습니다. 특정 도메인에 맞게 Atlas Search를 조정한다는 것은 종종 관련성 기반 기본 점수를 부스트, 감쇠 또는 다른 방식으로 수정하여 사용자 지정하는 것을 의미합니다.
자세한 내용은 문서 점수 부여하기를 참조하세요.
다음 단계
Atlas Search 검색 인덱스를 만들고 샘플 데이터에 대해 Atlas Search 검색 쿼리를 실행하는 실습을 해보고 싶다면 Atlas Search 빠른 시작을 참조하세요.