Docs Menu
Docs Home
/
MongoDB 매뉴얼
/ / /

db.collection.getSearchIndexes()

이 페이지의 내용

  • 정의
  • 호환성
  • 구문
  • 명령 필드
  • 액세스 제어
  • 출력
  • 인덱스 상태 세부 정보
  • 동의어 매핑 세부 정보
  • Atlas Search 인덱스 상태
  • 예시
  • 모든 검색 인덱스 반환
  • 단일 검색 인덱스 반환
db.collection.getSearchIndexes()

버전 7.0에 새로 추가됨: (6.0.7부터 사용 가능)

지정된 컬렉션 의 기존 Atlas Search 인덱스 에 대한 정보를 반환합니다.

중요

Mongo쉬 방법

이 페이지에서는 mongosh 메서드에 대해 설명합니다. 이는 Node.js와 같은 언어별 드라이버에 대한 설명서가 아닙니다.

MongoDB API 드라이버의 경우 언어별 MongoDB 드라이버 설명서를 참조하세요.

이 메서드는 다음 환경에서 호스팅되는 배포에서 사용할 수 있습니다.

  • MongoDB Atlas: 클라우드에서의 MongoDB 배포를 위한 완전 관리형 서비스

중요

이 명령은 M0, M2 및 M5 클러스터 또는 서버리스 인스턴스에서 지원되지 않습니다. 자세한 내용은 지원되지 않는 명령을 참조하세요.

명령 구문:

db.<collection>.getSearchIndexes(<indexName>)

getSearchIndexes() 는 이 필드를 사용합니다.

필드
유형
필요성
설명
indexName
문자열
옵션
정보를 반환할 인덱스의 이름입니다. indexName 필드를 생략하면 getSearchIndexes() 는 collection의 모든 Atlas Search 검색 인덱스에 대한 정보를 반환합니다.

배포서버 에서 액세스 제어를 적용하는 경우 getSearchIndexes() 를 실행 하는 사용자에게는 데이터베이스 또는 컬렉션 에 대한 listSearchIndexes 권한 조치 이 있어야 합니다.

{
resource: {
db : <database>,
collection: <collection>
},
actions: [ "listSearchIndexes" ]
}

내장된 read 역할은 listSearchIndexes 권한을 제공합니다. 다음 예시에서는 qa 데이터베이스에 대한 read 역할을 부여합니다.

db.grantRolesToUser(
"<user>",
[ { role: "read", db: "qa" } ]
)

getSearchIndexes() 문서 배열 을 반환합니다. 배열 의 각 문서 에는 다음 필드가 포함되어 있습니다.

필드
유형
설명
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
문서

해당 mongot의 활성 인덱스에 대한 상태 정보를 포함합니다.

자세한 내용은 인덱스 상태 세부정보를 참조하세요.

statusDetail.[n].stagedIndex
문서

해당 mongot의 백그라운드에서 빌드되는 인덱스에 대한 상태 정보를 포함합니다. 이 필드는 기존 활성 인덱스를 업데이트하기 위해 새 인덱스를 빌드하는 경우에만 나타납니다.

자세한 내용은 인덱스 상태 세부정보를 참조하세요.

synonymMappingStatus
문자열

인덱스의 동의어 매핑 상태입니다. 이 필드는 인덱스에 동의어가 정의된 경우에만 나타납니다. 다음 값 중 하나 일 수 있습니다.

  • BUILDING

  • FAILED

  • READY

반환된 상태는 각 개별 mongot에 대한 동의어 매핑의 요약입니다.

synonymMappingStatusDetail
문서 배열
해당 검색 호스트(mongot)의 인덱스 동의어 매핑 상태를 포함합니다. 이 필드(및 하위 필드)는 인덱스에 동의어가 정의된 경우에만 나타납니다.
synonymMappingStatusDetail.[n].status
문자열
해당 mongot 프로세스 전반에 걸친 동의어 매핑의 상태입니다.
synonymMappingStatusDetail.[n].queryable
부울
해당 동의어 매핑이 모든 mongot 프로세스에서 쿼리를 지원할 수 있는지 여부를 나타냅니다.
message
문자열
해당되는 경우 동의어 매핑에 대한 오류를 설명합니다. 이 동의어 매핑의 statusFAILED인 경우에만 나타납니다.

다음 표에서는 다음 문서의 포함된 필드에 대해 설명합니다. - statusDetail.[mongot].mainIndex - statusDetail.[mongot].stagedIndex

필드는 특정 mongot의 색인 상태를 설명합니다.

필드
유형
설명
status
문자열
해당 mongot의 인덱스 생성 상태입니다.
queryable
부울
인덱스 생성이 해당 mongot에서 쿼리할 준비가 되었는지 여부를 나타냅니다.
synonymMappingStatus
문자열
해당 mongot 인덱스 생성의 동의어 매핑 상태입니다. 인덱스에 동의어가 정의된 경우에만 나타납니다.
synonymMappingStatusDetails
문서

해당 mongot의 인덱스 동의어 매핑 상태를 포함합니다. 이 필드(및 하위 필드)는 인덱스에 동의어가 정의된 경우에만 표시됩니다.

자세한 내용은 동의어 매핑 세부 정보를 참조하세요.

definitionVersion
문서
이 인덱스 생성이 구축되고 있는 인덱스 정의 버전을 설명합니다.
definitionVersion.version
integer
인덱스 생성이 해당 mongot에서 사용 중인 버전 번호입니다. 인덱스 정의를 업데이트하면 업데이트된 인덱스는 증가된 버전 번호로 빌드됩니다.
definitionVersion.createdAt
날짜
인덱스 정의가 생성된 시간입니다.
definition
문서
이 인덱스가 빌드되는 정의입니다.

다음 표에서는 다음 객체의 내장된 필드에 대해 설명합니다.

  • statusDetail.mainIndex.synonymMappingStatusDetails.<synonymMapping>

  • statusDetail.stagedIndex.synonymMappingStatusDetails<synonymMapping>

필드
유형
설명
status
문자열
해당 mongot 프로세스의 동의어 매핑 상태입니다.
queryable
부울
동의어 매핑이 해당 mongot 프로세스에 대한 쿼리를 지원할 수 있는지 여부를 나타냅니다.
message
문자열
해당되는 경우 동의어 매핑에 대한 오류를 설명합니다. 이 동의어 매핑의 statusFAILED인 경우에만 나타납니다.

getSearchIndexes() 출력의 status 필드는 다음 중 하나일 수 있습니다.

상태
설명
BUILDING

다음 시나리오에서는 인덱스가 BUILDING 상태가 될 수 있습니다.

  • Atlas가 인덱스를 작성하거나 편집 후 인덱스를 다시 작성하고 있습니다.

  • Atlas Search는 컬렉션의 인덱싱 변경 사항을 따라갈 수 없습니다. 이 경우 Atlas는 백그라운드에서 인덱스를 다시 빌드합니다.

인덱스가 BUILDING 상태인 경우 다음과 같습니다.

  • 새 인덱스인 경우, Atlas Search는 인덱스 빌드가 완료될 때까지 인덱스를 쿼리에 사용할 수 없습니다.

  • 기존 인덱스인 경우, Atlas Search는 인덱스 재구성이 완료될 때까지 쿼리에 이전 인덱스 정의를 사용합니다.

BUILDING 상태의 인덱스는 쿼리가 가능하거나 쿼리가 불가능할 수 있습니다.

DOES_NOT_EXIST

인덱스가 존재하지 않습니다.

DOES_NOT_EXIST 상태의 인덱스는 항상 쿼리가 불가능합니다.

DELETING

Atlas가 인덱스를 삭제하는 중입니다.

DELETING 상태의 인덱스는 항상 쿼리가 불가능합니다.

FAILED

인덱스 빌드에 실패했습니다. 유효하지 않은 인덱스 정의로 인해 인덱스가 FAILED 상태 에 들어갈 수 있습니다.

FAILED 상태의 인덱스는 쿼리가 가능하거나 쿼리가 불가능할 수 있습니다.

PENDING

Atlas가 아직 인덱스 빌드를 시작하지 않았습니다.

PENDING 상태의 인덱스는 항상 쿼리가 불가능합니다.

READY

인덱스가 준비되었으며 쿼리를 지원할 수 있습니다.

READY 상태의 인덱스는 항상 쿼리가 가능합니다.

STALE

인덱스를 쿼리할 수 있지만 인덱싱된 컬렉션에서 데이터 복제가 중지되었습니다. 인덱스를 검색하면 오래된 데이터가 반환될 수 있습니다.

인덱스는 복제 오류로 인해 STALE 상태가 될 수 있습니다.

STALE 상태의 인덱스는 항상 쿼리가 가능합니다.

이번 예시에서 다음의 방법을 설명합니다.

다음 예제에서는 movies collection에 대한 모든 Atlas Search 검색 인덱스를 반환합니다. movies collection에는 두 개의 검색 인덱스 defaultsynonym_mappings 가 포함되어 있습니다.

db.movies.getSearchIndexes()

샘플 출력:

[
{
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 collection의 synonym_mappings 인덱스를 반환합니다.

db.movies.getSearchIndexes("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
}
}
]
}
}
]
}
]

돌아가기

db.collection.dropSearchIndex()