Atlas 검색 인덱스 생성 및 관리
이 페이지의 내용
Atlas Search 인덱스는 데이터를 쉽게 검색할 수 있는 형식으로 분류하는 데이터 구조입니다. 용어와 해당 용어가 포함된 문서 간의 매핑입니다. Atlas Search 인덱스를 활성화하면 특정 식별자를 사용하여 문서를 더 빠르게 검색할 수 있습니다. Atlas Search를 사용하여 Atlas 클러스터의 데이터를 쿼리하려면 Atlas Search 인덱스를 구성해야 합니다.
단일 필드 또는 여러 필드에 대해 Atlas Search 인덱스를 만들 수 있습니다. 쿼리 시점에 관련 데이터를 포함하는 문서를 빠르게 검색할 수 있도록, 데이터를 정렬하거나 필터링하는 데 정기적으로 사용하는 필드를 인덱싱하는 것이 좋습니다.
다음 방법을 사용하여 인덱스할 필드를 지정할 수 있습니다:
Atlas Search는 동적 매핑을 사용하여 각 문서에서 지원되는 유형의 모든 필드를 자동으로 인덱싱합니다. 이렇게 하면 검색하지 않을 필드를 인덱싱하는 데 디스크 공간이 낭비되어 클러스터 성능에 부정적인 영향을 미칠 수 있습니다.
정적 매핑은 인덱싱할 필드를 선택적으로 식별할 수 있습니다. 필드에 다형성 데이터가 포함된 경우 Atlas Search는 인덱스 정의의 매핑에 해당하는 문서만 인덱싱하고 필드의 인덱스 정의에 지정된 매핑과 일치하지 않는 값이 포함된 문서는 무시합니다.
고려 사항
Atlas Search 인덱스를 생성하고 관리할 때는 다음 사항을 고려하세요.
분석기 및 필드 매핑
Atlas Search는 구두점, 대문자, 마침표 등의 차이를 보정하는 인덱싱 가능한 용어를 생성하기 위한 기본 제공 분석기를 제공합니다. 분석기는 쿼리에 구문 분석 및 언어 규칙을 적용합니다. 사용 가능한 기본 제공 문자 필터, 토크나이저 및 토큰 필터를 사용하여 사용자 지정 분석기를 만들 수도 있습니다. 기본 제공 분석기와 사용자 지정 분석기에 대해 자세히 알아보려면 분석기를 사용하여 데이터 처리를 참조하세요.
To learn which data types Atlas Search supports for field mappings, see Data Types. The mongot
process stores the indexed fields and the _id
field on disk per index for the collections on the cluster.
참고
Atlas Search는 Atlas UI의 고객 키 관리를 사용하여 암호화 키로 Atlas Search 인덱스를 암호화하는 것을 지원하지 않습니다.
보면서 배우는 것을 선호하시나요?
이 동영상에서 Atlas Search 인덱스에 대한 개요를 확인하세요. 이 동영상에서는 분석기 및 Atlas Search 자동 완성 필드 유형에 대해 자세히 알아볼 수 있습니다.
소요 시간: 8분
디스크, 메모리 및 리소스 사용량
Atlas Search에 저장된 데이터는 Atlas 클러스터에 있는 컬렉션의 데이터와 동일한 복사본이 아니지만, Atlas Search 인덱스는 여전히 약간의 디스크 공간과 메모리를 차지합니다. 문자열 값이 포함된 필드에 대해 store
옵션을 활성화하거나 인덱스에 저장된 소스 필드를 구성하는 경우 Atlas Search는 지정된 필드의 동일한 복사본을 디스크에 저장하므로 디스크 공간을 차지할 수 있습니다.
Atlas 검색 인덱스를 사용할 때, Atlas 클러스터의 유휴 노드에서 리소스 소비가 증가할 수 있습니다. 이는 Atlas Search의 다양한 필수 작업을 수행하는 기본 mongot 프로세스 때문입니다. 유휴 node에서의 CPU 사용률은 인덱스의 수, 복잡성, 크기에 따라 달라질 수 있습니다.
참고
If your collection contains documents that are 16MB or larger, Atlas Search fails to index your data. This issue can also occur when update operations on large documents cause the change stream event to exceed the 16MB BSON limit. To avoid this, consider the following best practices:
하위 문서 또는 배열의 크기를 최소화하도록 문서를 구조화합니다.
큰 필드, 하위 문서 또는 배열을 업데이트 하거나 대체하는 작업은 피하세요.
To learn more, see Change Streams Production Recommendations and Reduce the Size of Large Documents.
인덱스 일관성 및 재구축
Atlas Search 인덱스를 정의한 컬렉션에 변경이 발생할 경우, 변경된 최신 데이터가 쿼리에 즉시 반영되지 않을 수 있습니다. 그러나 mongot
는 변경 스트림을 모니터링하여 저장된 데이터 복사본을 업데이트할 수 있으며, 최종적으로 Atlas Search 인덱스는 일관성을 유지합니다.
인덱스 정의를 변경하면mongot
는 배경 에서 새 인덱스 자동으로 다시 작성하는 동시에 이전 인덱스 로 쿼리를 계속 제공 다운타임이 없는지 mongot
mongod
확인합니다. 이는 동일한 노드 에 및 프로세스를 배포 때와 다른 노드에 프로세스를 배포 때 발생합니다. 또한 Atlas 미사용 데이터 암호화를 활성화 하거나 비활성화할 때 인덱스를 다시 작성합니다.
검색 배포의 토폴로지를 변경하는 경우 Atlas Search는 이전 노드를 제거하기 전에 모든 새 노드에 인덱스를 프로비저닝하고 빌드하여 쿼리 중단 시간이 발생하지 않도록 합니다.
프로세스와 프로세스가 모두 동일한 mongod
mongot
노드 에서 실행 배포 Atlas Search 인덱스를 다시 작성해야 하는 변경 사항(예: 인덱스 업데이트 필요한 일부 Atlas Search 기능)이 있는 경우, Atlas 추가 노드를 무료로 배포합니다. 이전 노드가 쿼리를 계속 제공 동안 인덱스를 빌드 .
전용 검색 노드
전용 검색 노드를 배포 성능, 확장성, 리소스 격리 개선할 수 있습니다. 검색 노드를 배포한 경우 다음 사항을 고려하세요.
샤드를 추가하고 조정하면 Atlas Search 인덱스를 다시 빌드하도록 트리거됩니다. 이렇게 인덱스를 다시 빌드하는 중에 인덱스에 최근 데이터가 없을 수도 있습니다. 따라서 해당 샤드의 데이터에 대한 쿼리가 실패하거나 잘못된 결과를 반환할 수 있습니다.
Atlas Search 인덱스가 있는 컬렉션을 리샤딩하는 경우, 리샤딩 작업이 완료되면 해당 컬렉션의 Atlas Search 인덱스는 사용할 수 없게 됩니다. 작업이 완료되면 반드시 Atlas Search 인덱스를 삭제하고 새 인덱스를 만들어야 합니다.
데이터베이스의 기본 샤드를 변경하는 명령을 실행할 경우, 작업이 완료되면 이 데이터베이스 아래에 있는 샤딩되지 않은 컬렉션에 대한 Atlas 검색 인덱스를 사용할 수 없게 됩니다. 작업이 완료되면
movePrimary
Atlas 검색 인덱스를 삭제하고 새 인덱스를 만들어야 합니다 .
지원되는 클라이언트
Atlas UI, Atlas Search API, Atlas CLI, mongosh
, MongoDB Compass, MongoDB 드라이버에서 Atlas Search 인덱스를 생성하고 관리할 수 있습니다.
Atlas CLI
Atlas CLI를 사용하여 Atlas Search 인덱스를 생성하고 관리하려면 Atlas 클러스터에서 MongoDB 6.0 이상 또는 7.0 이상을 실행해야 합니다.
mongosh
을 사용하여 Atlas Search 인덱스를 생성하고 관리 하려면 Atlas cluster 에서 mongosh
MongoDB 6.0+ 또는 +를 실행 해야 합니다.7.0
MongoDB Compass
Compass 를 사용하여 Atlas Search 인덱스를 생성하고 관리 하려면 Atlas cluster 에서 MongoDB 7.0+를 실행 해야 합니다.
MongoDB 드라이버
모든 클러스터 계층 에서 프로그래밍 방식으로 Atlas Search 인덱스를 생성하고 관리 하려면 다음 MongoDB 드라이버 중 하나를 사용할 수 있습니다.
다음 단계
Atlas Search 인덱스를 생성하는 방법은 Atlas Search 인덱스 생성을 참조하세요. 샘플 데이터세트에 대한 Atlas Search 인덱스를 만들고 인덱싱된 데이터에 대해 Atlas Search 쿼리를 실행하는 실습을 해보고 싶다면 다음 페이지의 자습서를 참조하세요.