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.
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 de pesquisa MongoDB existente ou índice de Vector Search MongoDB.

Importante

Método mongosh

This page documents a mongosh method. This is not the documentation for database commands or language-specific drivers, such as 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: The fully managed service for MongoDB deployments in the cloud

Para saber mais sobre sistemas autogerenciados, consulte MongoDB Search sobre sistemas autogerenciados.

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.

If set to true, the index contains all fields containing supported data types.

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.

Specifies the fields to index. To learn more, see Define Field Mappings for a MongoDB Search Index.

analyzers

array

Opcional

Especifica os Analyzers customizados a serem usados neste índice.

storedSource

Opcional

Specifies document fields to store for queries performed using the returnedStoredSource option.

You can store fields of all MongoDB Search Field Types on MongoDB Search. The storedSource value can be one of these:

  • true, para armazenar todos os campos

  • false, para não armazenar nenhum campo

  • An object that specifies the fields to include or exclude from storage

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 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 do MongoDB Search e atualiza esse índice.

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