Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Menu Docs
Página inicial do Docs
/ /

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

db.collection.createSearchIndex()

Novidade na versão 7.0: (Disponível também a partir de 6.0.7)

Cria um índice do Atlas Search ou índice do Atlas Vector Search em uma collection especificada.

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 createSearchIndexes.

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>.createSearchIndex(
<name>,
{
<definition>
}
)

createSearchIndex() usa estes campos:

Campo
Tipo
necessidade
Descrição

name

string

Opcional

Nome do índice de pesquisa a ser criado.

Você não pode criar vários índices com o mesmo nome em uma única collection.

Se você não especificar um name, o índice será denominado default.

definition

documento

Obrigatório

Documento que descreve o índice a ser criado. Para obter detalhes sobre a definition sintaxe , consulte Sintaxe de definição do índice de pesquisa.

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

searchAnalyzer

string

Opcional

Especifica o analisador 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 searchAnalyzer os analyzer campos e , o índice utilizará o analisador.

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 true para, 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 no índice. Para saber mais, consulte fts-field-mappings.

analyzers

array

Opcional

Especifica os analisadores 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 bson-data-chart no Atlas Search. O storedSource valor pode ser um destes:

  • true, para armazenar todos os campos

  • false, para não armazenar nenhum campo

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

Se omitido, o padrão é false.

Para saber mais, consulte fts-stored-source-definition.

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 sinônimos-ref.

createSearchIndex() Atlas Triggers uma construçã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 está pronto.

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 createSearchIndex() deverá ter a ação de privilégio createSearchIndexes no banco de dados ou na coleção:

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

O role readWrite integrado fornece o privilégio createSearchIndexes . O exemplo a seguir concede a accountUser01 a função readWrite no reconhecimento de data center products :

db.grantRolesToUser(
"accountUser01",
[ { role: "readWrite", db: "products" } ]
)

O exemplo seguinte cria um índice de pesquisa denominado searchIndex01 na collection movies :

db.movies.createSearchIndex(
"searchIndex01",
{ mappings: { dynamic: true } }
)

A definição mappings: { dynamic: true } do índice especifica, o que significa que o índice contém todos os campos na collection que suportaram tipos de dados.

Um analisador de linguagem introduz palavras vazias, que são palavras que não são significativas o suficiente para serem indexadas.

O exemplo seguinte cria um índice de pesquisa denominado frenchIndex01 na collection cars e especifica o analisador lucene.french no campo fr :

db.cars.createSearchIndex(
"frenchIndex01",
{
mappings: {
fields: {
subject: {
fields: {
fr: {
analyzer: "lucene.french",
type: "string"
}
},
type: "document"
}
}
}
}
)

Para saber mais sobre analisadores de idioma, consulte ref-language-analyzers.

O método createSearchIndex() a seguir especifica apenas a definição do índice e omite o nome do índice. O comando cria um índice de pesquisa com o nome default na collection food :

db.food.createSearchIndex(
{
mappings: {
fields: {
title: {
type: "string"
}
}
}
}
)

Voltar

Métodos de mongosh

Nesta página