$listSearchIndexes (집계)
이 페이지의 내용
정의
버전 7.0에 새로 추가됨: (6.0.7부터 사용 가능)
지정된 컬렉션 의 기존 Atlas Search 인덱스 에 대한 정보를 반환합니다.
중요
이 명령은 MongoDB Atlas 에서 호스팅되는 배포에서만 실행할 수 있으며, 최소 M10 의 Atlas 클러스터 계층이 필요합니다.
구문
명령 구문:
db.<collection>.aggregate( [ { $listSearchIndexes: { id: <indexId>, name: <indexName> } } ] )
명령 필드
$listSearchIndexes
다음 필드 중 하나를 사용합니다.
필드 | 유형 | 필요성 | 설명 |
---|---|---|---|
id | 문자열 | 옵션 | 정보를 반환할 인덱스의 ID입니다. |
name | 문자열 | 옵션 | 정보를 반환할 인덱스의 이름입니다. |
id
및 name
을 모두 지정할 수는 없습니다. id
및 name
필드를 모두 생략하면 $listSearchIndexes
는 컬렉션에 있는 모든 Atlas Search 인덱스에 대한 정보를 반환합니다.
액세스 제어
배포서버 에서 액세스 제어를 적용하는 경우 $listSearchIndexes
를 실행 하는 사용자에게는 데이터베이스 또는 컬렉션 에 대한 listSearchIndexes
권한 조치 이 있어야 합니다.
{ resource: { db : <database>, collection: <collection> }, actions: [ "listSearchIndexes" ] }
내장된 read
역할은 listSearchIndexes
권한을 제공합니다. 다음 예시에서는 qa
데이터베이스에 대한 read
역할을 부여합니다.
db.grantRolesToUser( "<user>", [ { role: "read", db: "qa" } ] )
출력
$listSearchIndexes
문서 배열 을 반환합니다. 배열 의 각 문서 에는 다음 필드가 포함되어 있습니다.
필드 | 유형 | 설명 |
---|---|---|
id | 문자열 | 인덱스의 고유 식별자. |
name | 문자열 | 인덱스의 이름입니다. |
status | 문자열 | 인덱스의 상태입니다. 자세한 내용은 Atlas Search 인덱스 상태를 참조하세요. |
queryable | 부울 | 인덱스를 쿼리할 준비가 되었는지 여부를 나타냅니다. |
latestDefinitionVersion | 문서 | 인덱스의 버전을 설명합니다. |
latestDefinitionVersion.version | integer | 인덱스 정의와 연결된 버전 번호입니다. 인덱스 정의를 업데이트하면 버전 번호가 자동으로 증가합니다. |
latestDefinitionVersion.createdAt | 날짜 | 현재 인덱스 정의가 생성된 시간입니다. |
latestDefinition | 문서 | 인덱스에 대한 가장 최근 정의입니다. 자세한 내용은 검색 인덱스 정의 구문을 참조하세요. |
statusDetail | 문서 배열 | 각 검색 호스에 대한 인덱스 상태를 포함합니다( mongot ). |
statusDetail.[n].hostname | 문자열 | 해당 mongot 의 호스트 이름입니다. |
statusDetail.[n].status | 문자열 | 해당 mongot 에 대한 인덱스 상태입니다. |
statusDetail.[n].queryable | 부울 | 인덱스가 해당 mongot 에서 쿼리할 준비가 되었는지 여부를 나타냅니다. |
statusDetail.[n].mainIndex | 문서 | 해당 자세한 내용은 인덱스 상태 세부정보를 참조하세요. |
statusDetail.[n].stagedIndex | 문서 | 해당 자세한 내용은 인덱스 상태 세부정보를 참조하세요. |
synonymMappingStatus | 문자열 | 인덱스의 동의어 매핑 상태입니다. 이 필드는 인덱스에 동의어가 정의된 경우에만 나타납니다. 다음 값 중 하나 일 수 있습니다.
반환된 상태는 각 개별 |
synonymMappingStatusDetail | 문서 배열 | 해당 검색 호스트( mongot )의 인덱스 동의어 매핑 상태를 포함합니다. 이 필드(및 하위 필드)는 인덱스에 동의어가 정의된 경우에만 나타납니다. |
synonymMappingStatusDetail.[n].status | 문자열 | 해당 mongot 프로세스 전반에 걸친 동의어 매핑의 상태입니다. |
synonymMappingStatusDetail.[n].queryable | 부울 | 해당 동의어 매핑이 모든 mongot 프로세스에서 쿼리를 지원할 수 있는지 여부를 나타냅니다. |
message | 문자열 | 해당되는 경우 동의어 매핑에 대한 오류를 설명합니다. 이 동의어 매핑의 status 가 FAILED 인 경우에만 나타납니다. |
인덱스 상태 세부 정보
다음 표에서는 다음 문서의 포함된 필드에 대해 설명합니다. - statusDetail.[mongot].mainIndex
- statusDetail.[mongot].stagedIndex
필드는 특정 mongot
의 색인 상태를 설명합니다.
필드 | 유형 | 설명 |
---|---|---|
status | 문자열 | 해당 mongot 의 인덱스 생성 상태입니다. |
queryable | 부울 | 인덱스 생성이 해당 mongot 에서 쿼리할 준비가 되었는지 여부를 나타냅니다. |
synonymMappingStatus | 문자열 | 해당 mongot 인덱스 생성의 동의어 매핑 상태입니다. 인덱스에 동의어가 정의된 경우에만 나타납니다. |
synonymMappingStatusDetails | 문서 | 해당 자세한 내용은 동의어 매핑 세부 정보를 참조하세요. |
definitionVersion | 문서 | 이 인덱스 생성이 구축되고 있는 인덱스 정의 버전을 설명합니다. |
definitionVersion.version | integer | 인덱스 생성이 해당 mongot 에서 사용 중인 버전 번호입니다. 인덱스 정의를 업데이트하면 업데이트된 인덱스는 증가된 버전 번호로 빌드됩니다. |
definitionVersion.createdAt | 날짜 | 인덱스 정의가 생성된 시간입니다. |
definition | 문서 | 이 인덱스가 빌드되는 정의입니다. |
동의어 매핑 세부 정보
다음 표에서는 다음 객체의 내장된 필드에 대해 설명합니다.
statusDetail.mainIndex.synonymMappingStatusDetails.<synonymMapping>
statusDetail.stagedIndex.synonymMappingStatusDetails<synonymMapping>
필드 | 유형 | 설명 |
---|---|---|
status | 문자열 | 해당 mongot 프로세스의 동의어 매핑 상태입니다. |
queryable | 부울 | 동의어 매핑이 해당 mongot 프로세스에 대한 쿼리를 지원할 수 있는지 여부를 나타냅니다. |
message | 문자열 | 해당되는 경우 동의어 매핑에 대한 오류를 설명합니다. 이 동의어 매핑의 status 가 FAILED 인 경우에만 나타납니다. |
Atlas Search 인덱스 상태
$listSearchIndexes
출력의 status
필드는 다음 중 하나일 수 있습니다.
상태 | 설명 |
---|---|
BUILDING | 다음 시나리오에서는 인덱스가
인덱스가
|
DOES_NOT_EXIST | 인덱스가 존재하지 않습니다.
|
DELETING | Atlas가 인덱스를 삭제하는 중입니다.
|
FAILED | 인덱스 빌드에 실패했습니다. 유효하지 않은 인덱스 정의로 인해 인덱스가
|
PENDING | Atlas가 아직 인덱스 빌드를 시작하지 않았습니다.
|
READY | 인덱스가 준비되었으며 쿼리를 지원할 수 있습니다.
|
STALE | 인덱스를 쿼리할 수 있지만 인덱싱된 컬렉션에서 데이터 복제가 중지되었습니다. 인덱스를 검색하면 오래된 데이터가 반환될 수 있습니다. 인덱스는 복제 오류로 인해
|
오류
버전 7.1에서 변경: 이 명령은 Atlas에서 실행되지 않으면 오류가 발생합니다.
db.names.aggregate( [ { $listSearchIndexes: { } } ] )
MongoServerError: PlanExecutor error during aggregation :: caused by :: Search index commands are only supported with Atlas.
이전 릴리스에서는 이 명령이 Atlas에서 실행되지 않으면 빈 결과를 반환했습니다.
예시
이번 예시에서 다음의 방법을 설명합니다.
모든 검색 인덱스 반환
다음 예에서는 movies
컬렉션의 모든 Atlas Search 인덱스를 반환합니다.
db.movies.aggregate( [ { $listSearchIndexes: { } } ] )
샘플 출력:
[ { id: '6524096020da840844a4c4a7', name: 'default', status: 'BUILDING', queryable: true, latestDefinitionVersion: { version: 2, createdAt: ISODate("2023-10-09T14:51:57.355Z") }, latestDefinition: { mappings: { dynamic: true }, storedSource: { include: [ 'awards.text' ] } }, statusDetail: [ { hostname: 'atlas-n1cm1j-shard-00-02', status: 'BUILDING', queryable: true, mainIndex: { status: 'READY', queryable: true, definitionVersion: { version: 0, createdAt: ISODate("2023-10-09T14:08:32.000Z") }, definition: { mappings: { dynamic: true, fields: {} } } }, stagedIndex: { status: 'PENDING', queryable: false, definitionVersion: { version: 1, createdAt: ISODate("2023-10-09T14:51:29.000Z") }, definition: { mappings: { dynamic: true, fields: {} }, storedSource: true } } }, { hostname: 'atlas-n1cm1j-shard-00-01', status: 'BUILDING', queryable: true, mainIndex: { status: 'READY', queryable: true, definitionVersion: { version: 0, createdAt: ISODate("2023-10-09T14:08:32.000Z") }, definition: { mappings: { dynamic: true, fields: {} } } }, stagedIndex: { status: 'PENDING', queryable: false, definitionVersion: { version: 1, createdAt: ISODate("2023-10-09T14:51:29.000Z") }, definition: { mappings: { dynamic: true, fields: {} }, storedSource: true } } }, { hostname: 'atlas-n1cm1j-shard-00-00', status: 'BUILDING', queryable: true, mainIndex: { status: 'READY', queryable: true, definitionVersion: { version: 0, createdAt: ISODate("2023-10-09T14:08:32.000Z") }, definition: { mappings: { dynamic: true, fields: {} } } } } ] }, { id: '65240be420da840844a4d077', name: 'synonym_mappings', status: 'READY', queryable: true, latestDefinitionVersion: { version: 0, createdAt: ISODate("2023-10-09T14:19:16.305Z") }, latestDefinition: { mappings: { dynamic: true, fields: { fullplot: { type: 'string' } } }, synonyms: [ { name: 'synonym_mapping', analyzer: 'lucene.english', source: { collection: 'synonyms' } } ] }, synonymMappingStatus: 'READY', synonymMappingStatusDetail: [ { synonym_mapping: { status: 'READY', queryable: true } } ], statusDetail: [ { hostname: 'atlas-n1cm1j-shard-00-02', status: 'READY', queryable: true, mainIndex: { status: 'READY', queryable: true, definitionVersion: { version: 0, createdAt: ISODate("2023-10-09T14:19:16.000Z") }, definition: { mappings: { dynamic: true, fields: { fullplot: { type: 'string', indexOptions: 'offsets', store: true, norms: 'include' } } }, synonyms: [ { name: 'synonym_mapping', analyzer: 'lucene.english', source: { collection: 'synonyms' } } ] }, synonymMappingStatus: 'READY', synonymMappingStatusDetail: [ { synonym_mapping: { status: 'READY', queryable: true } } ] } }, { hostname: 'atlas-n1cm1j-shard-00-01', status: 'READY', queryable: true, mainIndex: { status: 'READY', queryable: true, definitionVersion: { version: 0, createdAt: ISODate("2023-10-09T14:19:16.000Z") }, definition: { mappings: { dynamic: true, fields: { fullplot: { type: 'string', indexOptions: 'offsets', store: true, norms: 'include' } } }, synonyms: [ { name: 'synonym_mapping', analyzer: 'lucene.english', source: { collection: 'synonyms' } } ] }, synonymMappingStatus: 'READY', synonymMappingStatusDetail: [ { synonym_mapping: { status: 'READY', queryable: true } } ] } }, { hostname: 'atlas-n1cm1j-shard-00-00', status: 'READY', queryable: true, mainIndex: { status: 'READY', queryable: true, definitionVersion: { version: 0, createdAt: ISODate("2023-10-09T14:19:16.000Z") }, definition: { mappings: { dynamic: true, fields: { fullplot: { type: 'string', indexOptions: 'offsets', store: true, norms: 'include' } } }, synonyms: [ { name: 'synonym_mapping', analyzer: 'lucene.english', source: { collection: 'synonyms' } } ] }, synonymMappingStatus: 'READY', synonymMappingStatusDetail: [ { synonym_mapping: { status: 'READY', queryable: true } } ] } } ] } ]
이름으로 단일 검색 인덱스 반환
다음 예제에서는 movies
컬렉션에서 synonym-mappings
인덱스를 반환합니다.
db.movies.aggregate( [ { $listSearchIndexes: { name: "synonym-mappings" } } ] )
샘플 출력:
[ { id: '65240be420da840844a4d077', name: 'synonym_mappings', status: 'READY', queryable: true, latestDefinitionVersion: { version: 0, createdAt: ISODate("2023-10-09T14:19:16.305Z") }, latestDefinition: { mappings: { dynamic: true, fields: { fullplot: { type: 'string' } } }, synonyms: [ { name: 'synonym_mapping', analyzer: 'lucene.english', source: { collection: 'synonyms' } } ] }, synonymMappingStatus: 'READY', synonymMappingStatusDetail: [ { synonym_mapping: { status: 'READY', queryable: true } } ], statusDetail: [ { hostname: 'atlas-n1cm1j-shard-00-02', status: 'READY', queryable: true, mainIndex: { status: 'READY', queryable: true, definitionVersion: { version: 0, createdAt: ISODate("2023-10-09T14:19:16.000Z") }, definition: { mappings: { dynamic: true, fields: { fullplot: { type: 'string', indexOptions: 'offsets', store: true, norms: 'include' } } }, synonyms: [ { name: 'synonym_mapping', analyzer: 'lucene.english', source: { collection: 'synonyms' } } ] }, synonymMappingStatus: 'READY', synonymMappingStatusDetail: [ { synonym_mapping: { status: 'READY', queryable: true } } ] } }, { hostname: 'atlas-n1cm1j-shard-00-01', status: 'READY', queryable: true, mainIndex: { status: 'READY', queryable: true, definitionVersion: { version: 0, createdAt: ISODate("2023-10-09T14:19:16.000Z") }, definition: { mappings: { dynamic: true, fields: { fullplot: { type: 'string', indexOptions: 'offsets', store: true, norms: 'include' } } }, synonyms: [ { name: 'synonym_mapping', analyzer: 'lucene.english', source: { collection: 'synonyms' } } ] }, synonymMappingStatus: 'READY', synonymMappingStatusDetail: [ { synonym_mapping: { status: 'READY', queryable: true } } ] } }, { hostname: 'atlas-n1cm1j-shard-00-00', status: 'READY', queryable: true, mainIndex: { status: 'READY', queryable: true, definitionVersion: { version: 0, createdAt: ISODate("2023-10-09T14:19:16.000Z") }, definition: { mappings: { dynamic: true, fields: { fullplot: { type: 'string', indexOptions: 'offsets', store: true, norms: 'include' } } }, synonyms: [ { name: 'synonym_mapping', analyzer: 'lucene.english', source: { collection: 'synonyms' } } ] }, synonymMappingStatus: 'READY', synonymMappingStatusDetail: [ { synonym_mapping: { status: 'READY', queryable: true } } ] } } ] } ]
ID로 단일 검색 인덱스 반환
다음 예에서는 제공된 id
를 사용하여 검색 인덱스를 반환합니다.
db.movies.aggregate( [ { $listSearchIndexes: { id: "6524096020da840844a4c4a7" } } ] )
샘플 출력:
[ { id: '6524096020da840844a4c4a7', name: 'default', status: 'BUILDING', queryable: true, latestDefinitionVersion: { version: 2, createdAt: ISODate("2023-10-09T14:51:57.355Z") }, latestDefinition: { mappings: { dynamic: true }, storedSource: { include: [ 'awards.text' ] } }, statusDetail: [ { hostname: 'atlas-n1cm1j-shard-00-02', status: 'BUILDING', queryable: true, mainIndex: { status: 'READY', queryable: true, definitionVersion: { version: 0, createdAt: ISODate("2023-10-09T14:08:32.000Z") }, definition: { mappings: { dynamic: true, fields: {} } } }, stagedIndex: { status: 'PENDING', queryable: false, definitionVersion: { version: 1, createdAt: ISODate("2023-10-09T14:51:29.000Z") }, definition: { mappings: { dynamic: true, fields: {} }, storedSource: true } } }, { hostname: 'atlas-n1cm1j-shard-00-01', status: 'BUILDING', queryable: true, mainIndex: { status: 'READY', queryable: true, definitionVersion: { version: 0, createdAt: ISODate("2023-10-09T14:08:32.000Z") }, definition: { mappings: { dynamic: true, fields: {} } } }, stagedIndex: { status: 'PENDING', queryable: false, definitionVersion: { version: 1, createdAt: ISODate("2023-10-09T14:51:29.000Z") }, definition: { mappings: { dynamic: true, fields: {} }, storedSource: true } } }, { hostname: 'atlas-n1cm1j-shard-00-00', status: 'BUILDING', queryable: true, mainIndex: { status: 'READY', queryable: true, definitionVersion: { version: 0, createdAt: ISODate("2023-10-09T14:08:32.000Z") }, definition: { mappings: { dynamic: true, fields: {} } } } } ] } ]
자세히 알아보기
mongosh
메서드를 사용하여 Atlas Search 인덱스를 보려면 db.collection.getSearchIndexes()
를 참조하세요.
Atlas Search 인덱스를 생성하려면 다음을 참조하세요.
db.collection.createSearchIndex()
mongosh
메서드createSearchIndexes
데이터베이스 명령