$listSearchIndexes (agregação)
Nesta página
Definição
Novidade na versão 7.0: (Disponível também a partir de 6.0.7)
Retorna informações sobre os índices existentes doAtlas Search em uma collection especificada.
Importante
Esse comando só pode ser executado em uma implantação hospedada no MongoDB Atlas e requer uma camada do cluster Atlas de pelo menos M10.
Sintaxe
Sintaxe do comando:
db.<collection>.aggregate( [ { $listSearchIndexes: { id: <indexId>, name: <indexName> } } ] )
Campos de comando
$listSearchIndexes
usa qualquer um dos seguintes campos:
Campo | Tipo | necessidade | Descrição |
---|---|---|---|
| string | Opcional | O id do índice sobre o qual retornar informações. |
| string | Opcional | O nome do índice sobre o qual retornar informações. |
Você não pode especificar id
e name
. Se você omitir os campos id
e name
, $listSearchIndexes
retornará informações sobre todos os índices do Atlas Search na coleção.
Controle de acesso
Se a sua implementação impõe controle de acesso, o usuário que executa o $listSearchIndexes
deve ter a ação de privilégio listSearchIndexes
no banco de banco de dados ou na collection:
{ resource: { db : <database>, collection: <collection> }, actions: [ "listSearchIndexes" ] }
A função read
integrada fornece o privilégio listSearchIndexes
. O exemplo a seguir concede a função read
no banco de dados qa
:
db.grantRolesToUser( "<user>", [ { role: "read", db: "qa" } ] )
Saída
$listSearchIndexes
retorna uma array de documentos. Cada documento no array contém os seguintes campos:
Campo | Tipo | Descrição |
---|---|---|
| string | Identificador exclusivo para o índice. |
| string | Nome do índice. |
| string | Status do índice. Para mais informações, consulte Status do índice do Atlas Search. |
| booleano | Indica se o índice está pronto para ser query. |
| documento | Descreve a versão do índice. |
| inteiro | Número da versão associado à definição do índice. Quando você atualiza uma definição de índice, o número da versão é incrementado automaticamente. |
| data | Hora em que a definição de índice atual foi criada. |
| documento | A definição mais recente para o índice. Para obter mais informações, consulte Sintaxe de definição do índice de pesquisa. |
| matriz de documentos | contém o status do índice em cada host de pesquisa ( |
| string | Nome do host do |
| string | Status do índice no |
| booleano | Indica se o índice está pronto para ser consultado no |
| documento | Contém informações de status sobre o índice ativo no Para obter detalhes, consulte Detalhes do status do índice. |
| documento | Contém informações de status sobre um índice que está sendo criado em segundo plano no Para obter detalhes, consulte Detalhes do status do índice. |
| string | Status dos mapeamentos de sinônimos do índice. Esse campo só aparece se o índice tiver sinônimos definidos. Pode ser um dos seguintes valores:
O status retornado é um resumo dos mapeamentos de sinônimos em cada |
| matriz de documentos | Contém o status dos mapeamentos de sinônimos do índice em cada host de pesquisa ( |
| string | Status do mapeamento de sinônimos correspondente em todos os processos |
| booleano | Indica se o mapeamento de sinônimos correspondente pode suportar queries em todos os processos do |
| string | Descreve um erro para o mapeamento de sinônimos, se aplicável. Só aparece se o |
Detalhes de status do índice
A tabela a seguir descreve os campos incorporados dos seguintes documentos: - statusDetail.[mongot].mainIndex
- statusDetail.[mongot].stagedIndex
Os campos descrevem o status do índice em um mongot
específico.
Campo | Tipo | Descrição |
---|---|---|
| string | O estado da geração de índice no |
| booleano | Indica se a geração do índice está pronta para passar por query no |
| string | O estado dos mapeamentos de sinônimos da geração de índice no |
| documento | Contém o status dos mapeamentos de sinônimos do índice no Para obter mais informações, consulte Detalhes de mapeamento de sinônimos. |
| documento | Descreve a versão da definição de índice com a qual esta geração de índice está sendo construída. |
| inteiro | Número da versão que a geração do índice está usando no |
| data | Hora em que a definição de índice foi criada. |
| documento | A definição com a qual esse índice está sendo construído. |
Detalhes de mapeamento de sinônimo
A tabela a seguir descreve os campos incorporados dos seguintes objetos:
statusDetail.mainIndex.synonymMappingStatusDetails.<synonymMapping>
statusDetail.stagedIndex.synonymMappingStatusDetails<synonymMapping>
Campo | Tipo | Descrição |
---|---|---|
| string | Status do mapeamento de sinônimos no processo |
| booleano | Indica se o mapeamento de sinônimos pode dar suporte a consultas no processo |
| string | Descreve um erro para o mapeamento de sinônimos, se aplicável. Só aparece se o |
Status do índice do Atlas Search
O campo status
na saída $listSearchIndexes
pode ser um dos seguintes:
Status | Descrição |
---|---|
| Os cenários a seguir podem fazer com que um índice esteja no estado
Quando o índice está no estado
Um índice no estado |
| O índice não existe. Um índice no estado |
| O Atlas está excluindo o índice. Um índice no estado |
| A criação do índice falhou. Os índices podem entrar no estado Um índice no estado |
| Atlas ainda não começou a construir o índice. Um índice no estado |
| O índice está pronto e tem suporte para queries. Um índice no estado |
| O índice é consultável, mas parou de replicar dados da coleção indexada. As pesquisas no índice podem retornar dados desatualizados. Os índices podem entrar no estado Um índice no estado |
Errors
Alterado na versão 7.0.3: Este comando exibe um erro quando não é executado no Atlas.
db.names.aggregate( [ { $listSearchIndexes: { } } ] )
MongoServerError: PlanExecutor error during aggregation :: caused by :: Search index commands are only supported with Atlas.
Em versões anteriores, esse comando retorna um resultado vazio quando não é executado no Atlas.
Exemplos
Esses exemplos demonstram como:
Retornar todos os índices de pesquisa
O exemplo a seguir retorna todos os índices do Atlas Search na coleção movies
:
db.movies.aggregate( [ { $listSearchIndexes: { } } ] )
Saída de amostra:
[ { 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 } } ] } } ] } ]
Retornar um índice de pesquisa único por nome
O exemplo a seguir retorna o índice chamado synonym-mappings
na coleção movies
:
db.movies.aggregate( [ { $listSearchIndexes: { name: "synonym-mappings" } } ] )
Saída de amostra:
[ { 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 } } ] } } ] } ]
Retornar um índice de pesquisa único por ID
O exemplo a seguir retorna o índice de pesquisa com o id
fornecido:
db.movies.aggregate( [ { $listSearchIndexes: { id: "6524096020da840844a4c4a7" } } ] )
Saída de amostra:
[ { 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: {} } } } } ] } ]
Saiba mais
Para criar índices do Atlas Search , consulte:
O método
db.collection.createSearchIndex()
mongosh
O comando
createSearchIndexes
do banco de dados