db.collection.updateSearchIndex()
Nesta página
Definição
Novidade na versão 7.0: (Disponível também a partir de 6.0.7)
Atualiza um índice existente do Atlas Search.
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.
Importante
Método mongosh
Esta página documenta um método mongosh
. Esta não é a documentação para comandos de banco de dados nem drivers específicos de linguagem, como Node.js.
Para o comando de banco de dados de dados, consulte o comando updateSearchIndex
.
Para drivers de API do MongoDB, consulte a documentação do driver do MongoDB específica da linguagem.
Sintaxe
Sintaxe do comando:
db.<collection>.updateSearchIndex( <name>, { <definition> } )
Campos de comando
updateSearchIndex()
usa estes campos:
Campo | Tipo | necessidade | Descrição |
---|---|---|---|
name | string | Obrigatório | Nome do índice de pesquisa a ser atualizado. |
definition | documento | Obrigatório | Documento que descreve a definição de índice atualizada. Para obter detalhes sobre a sintaxe definition , consulte Sintaxe de definição do índiceAtlas Search . |
Sintaxe de definição do índice de pesquisar
A definição do índice de pesquisa utiliza os seguintes campos:
{ analyzer: "<analyzer-for-index>", searchAnalyzer: "<analyzer-for-query>", mappings: { dynamic: <boolean>, fields: { <field-definition> } }, analyzers: [ <custom-analyzer> ], storedSource: <boolean> | { <stored-source-definition> }, synonyms: [ { name: "<synonym-mapping-name>", source: { collection: "<source-collection-name>" }, analyzer: "<synonym-mapping-analyzer>" } ] }
Campo | Tipo | necessidade | Descrição |
---|---|---|---|
analyzer | string | Opcional | Especifica o analyzer para aplicar aos campos da string ao indexar. Se você omitir este campo, o índice utilizará o analisador padrão. |
searchAnalyzer | string | Opcional | |
mappings | objeto | Opcional | Especifica como indexar campos em caminhos diferentes para este índice. |
mappings.dynamic | booleano | Opcional | Habilita ou desabilita o mapeamento de campo dinâmico para este índice. Se configurado para Se definido como Se omitido, o padrão é |
mappings.fields | documento | Condicional | Necessário apenas se o mapeamento dinâmico estiver desabilitado. Especifica os campos no índice. Para saber mais, consulte Como definir mapeamentos de campo. |
analyzers | array | Opcional | Especifica os Analyzers customizados a serem usados neste índice. |
storedSource | boolean ou definição de origem armazenada | Opcional | Especifica os campos de documento a serem armazenados para queries realizadas usando a opção returnedStoredSource . Você pode armazenar campos de todos os tipos de dados na Atlas Search. O valor
Se omitido, o padrão é Para saber mais, consulte Definir campos de origem armazenados no seu índice do Atlas Search. |
synonyms | Opcional | Especifica mapeamentos de sinônimos para usar em seu índice. A configuração de sinônimos permite indexar e pesquisar palavras que tenham o mesmo significado ou um significado semelhante. Para saber mais, consulte Definir mapeamentos de sinônimos em seu índice do Atlas Search. |
Comportamento
updateSearchIndex()
Atlas Triggers uma construção de índice com a nova definição de índice. Pode haver um atraso entre o momento em que você recebe uma resposta do comando e o momento em que o índice atualizado está pronto.
A definição de índice antiga ainda pode suportar query enquanto o novo índice está sendo criado. Depois que o novo índice terminar de ser criado, o índice antigo não poderá mais ser usado. Para ver o status dos seus índices de pesquisa, use o estágio de agregação $listSearchIndexes
.
Controle de acesso
Se sua implantação impor controle de acesso, o usuário que executa updateSearchIndex()
deverá ter a ação de privilégio updateSearchIndex
no banco de dados ou na coleção:
{ resource: { db : <database>, collection: <collection> }, actions: [ "updateSearchIndex" ] }
Os papéis embutidos readWrite
e restore
fornecem o privilégio do updateSearchIndex
. O exemplo a seguir concede a role readWrite
no reconhecimento de data center qa
:
db.grantRolesToUser( "<user>", [ { role: "readWrite", db: "qa" } ] )
Exemplo
O exemplo a seguir cria um novo índice de pesquisa do Atlas Search e então atualiza este índice de pesquisa.
Criar um índice de pesquisa denominado
searchIndex01
na collectionmovies
:db.movies.createSearchIndex( "searchIndex01", { mappings: { dynamic: true }, storedSource: { exclude: [ "imdb.rating" ] } } ) Atualize o índice
searchIndex01
:db.movies.updateSearchIndex( "searchIndex01", { mappings: { dynamic: true }, storedSource: { exclude: [ "movies" ] } } )