Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
See how MongoDB 9.0 delivers up to 2x higher throughput.
MongoDB Branding Shape
Register now >
Menu Docs

db.collection.updateSearchIndex() (método mongosh)

db.collection.updateSearchIndex()

Novidade na versão 7.0: (Também disponível a partir da versão 6.0.7)

Atualiza um índice existente do Atlas Search ou o índice do Atlas Vector Search existente.

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 do banco de dados, consulte o comando updateSearchIndex.

Para drivers de API do MongoDB, consulte a documentação do driver do MongoDB específica da linguagem.

Esse método está disponível em implantações hospedadas nos seguintes ambientes:

  • MongoDB Atlas: o serviço totalmente gerenciado para implantações do MongoDB na nuvem

Sintaxe do comando:

db.<collection>.updateSearchIndex(
<name>,
{
<definition>
}
)

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 o índice a ser criado. A sintaxe definition depende se você cria um índice de índice de pesquisa de Vector Search . Para a sintaxe definition , consulte:

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

Especifica o analyzer a ser aplicado ao texto de query antes que o texto seja pesquisado.

Se você omitir este campo, o índice utilizará o mesmo analisador especificado no campo analyzer .

Se você omitir os campos searchAnalyzer e analyzer , o índice utilizará o padrão .

mappings

objeto

Obrigatório

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 true, o índice contém todos os campos contendo tipos de dados suportados.

Se definido como false, você deve especificar campos individuais para indexar usando mappings.fields.

Se omitido, o padrão é false.

mappings.fields

documento

Condicional

Necessário apenas se o mapeamento dinâmico estiver desabilitado.

Especifica os campos para indexar. Para saber mais, consulte Definir mapeamentos de campo para um índice de pesquisa do MongoDB.

analyzers

array

Opcional

Especifica os Analyzers customizados a serem usados neste índice.

storedSource

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 campo de pesquisa do MongoDB no Atlas Search. O valor storedSource pode ser um destes:

  • true, para armazenar todos os campos

  • false, para não armazenar nenhum campo

  • Um objeto que especifica os campos de include ou exclude a partir do armazenamento

Se omitido, o padrão é false.

Para saber mais, consulte Definir campos de origem armazenados no índice de pesquisa do MongoDB.

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 de pesquisa do MongoDB.

A definição do índice de pesquisa vetorial usa os seguintes campos:

{
"fields": [
{
"type": "vector" | "filter",
"path": "<field-to-index>",
"numDimensions": <number-of-dimensions>,
"similarity": "euclidean" | "cosine" | "dotProduct"
}
]
}

Para obter explicações sobre os campos de definição de índice de pesquisa , consulte Como indexar campos para o Vector Search.

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 .

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" } ]
)

O exemplo a seguir cria um novo índice de pesquisa do Atlas Search e então atualiza este índice de pesquisa.

  1. Criar um índice de pesquisa denominado searchIndex01 na collection movies :

    db.movies.createSearchIndex(
    "searchIndex01",
    {
    mappings: { dynamic: true },
    storedSource: {
    exclude: [ "imdb.rating" ]
    }
    }
    )
  2. Atualize o índice searchIndex01 :

    db.movies.updateSearchIndex(
    "searchIndex01",
    {
    mappings: { dynamic: true },
    storedSource: {
    exclude: [ "movies" ]
    }
    }
    )