Menu Docs
Página inicial do Docs
/
Manual do MongoDB
/ /

Índices de texto

Nesta página

  • Suporte a $text
  • Casos de uso
  • Começar
  • Detalhes
  • Índices de texto compostos
  • sparse Propriedade
  • Requisitos de armazenamento e custos de desempenho
  • Saiba mais

Observação

Esta página descreve as funcionalidades de consulta de texto para implantações autogerenciadas (não Atlas). Para dados hospedados no MongoDB Atlas, o MongoDB oferece uma solução aprimorada de consulta de texto completo, Atlas Search.

Os índices de texto oferecem suporte aqueries de pesquisa de texto em campos que contêm conteúdo de string. Os índices de texto melhoram o desempenho ao pesquisar palavras ou frases específicas no conteúdo da string.

Uma coleção só pode ter um índice de texto, mas esse índice pode incluir vários campos.

Para criar um índice de texto, use o seguinte protótipo:

db.<collection>.createIndex(
{
<field1>: "text",
<field2>: "text",
...
}
)

Os índices de texto oferecem suporte a operações de query $text em sistemas on-premises. Para usar $text, você deve criar um índice de texto.

Observação

$text fornece recursos de query de texto para sistemas autogerenciados (não Atlas). Para dados hospedados no MongoDB Atlas, o MongoDB oferece uma solução de query de texto completo aprimorada, Atlas Search.

Os documentos na coleção clothing de uma loja online incluem um campo description que contém uma string de texto descrevendo cada item. Para encontrar roupas feitas de silk, crie um índice de texto no campo description e execute uma query $text para documentos com a palavra-chave silk. A pesquisa retorna todos os documentos que mencionam silk no campo description .

Para saber como criar índices de texto e usar índices de texto em casos de uso específicos, consulte:

Esta seção descreve os detalhes de índices de texto.

Para um índice composto que inclui uma chave de índice de texto junto com chaves de outros tipos, somente o campo de índice de texto determina se o índice faz referência a um documento. As outras chaves não determinam se o índice faz referência aos documentos.

Os índices de texto são sempre esparsos. Ao criar um índice de texto, o MongoDB ignora a opção sparse.

Se um documento existente ou recém-inserido não tiver um campo de índice de texto (ou o campo for nulo ou uma matriz vazia), o MongoDB não adicionará uma entrada de índice de texto para o documento.

Os índices de texto têm os seguintes requisitos de armazenamento e custos de desempenho:

  • Os índices de texto podem ocupar uma grande quantidade de RAM. Eles contêm uma entrada de índice para cada palavra única pós-processamento (stemming) em cada campo indexado para cada documento inserido.

  • Construir um índice de texto é semelhante a construir um grande índice multi-chave, mas leva mais tempo do que construir um índice simples ordenado (scalar) nos mesmos dados.

  • Ao criar um índice de texto que ocupa uma grande quantidade de RAM, verifique se você tem um limite suficientemente alto de descritores de arquivo abertos. Consulte as configurações recomendadas.

  • Os índices de texto afetam o desempenho de gravação porque o MongoDB deve adicionar um índice entrada para cada palavra pós-derivada única em cada campo indexado de cada novo documento de origem.

  • Os índices de texto armazenam palavras individuais de uma cadeia de texto. Eles não armazenam frases ou informações sobre a proximidade de palavras nos documentos. Como um resultado, queries que especificam várias palavras são executadas mais rapidamente quando todo o a coleção cabe na RAM.

← Limites de índice de várias chaves