Learn the "why" behind slow queries and how to fix them in our 2-Part Webinar.
Register now >
Menu Docs
Página inicial do Docs
/ /

Índices de texto em sistemas autogerenciados

Observação

MongoDB oferece uma solução aprimorada de pesquisa de texto completo, MongoDB Search, e uma solução de pesquisa vetorial, MongoDB Vector Search. Recomendamos usar índices do MongoDB Search ou índices do MongoDB Vector Search em vez de índices de texto.

Os índices de texto suportam $text queries em campos que contêm conteúdo de string. Elas também oferecem suporte a expressões de agregação para campos de string criptografados em coleções habilitadas para Queryable Encryption. Os índices de texto melhoram o desempenho quando você pesquisa palavras ou strings específicas no conteúdo da string.

Uma coleção pode ter somente 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 às operações de query $text em sistemas on-premises. Para usar $text, você deve criar um índice de texto.

Os índices de texto oferecem suporte a expressões de agregação para campos em collections do Queryable Encryption com queries de prefixo, sufixo ou substring ativadas. Um índice de texto é necessário para usar a expressão $encStrNormalizedEq.

A coleção clothing de uma loja online tem um campo description que contém uma string de texto descrevendo cada item. Para encontrar roupas feitas de "silk", crie um índice de texto em description e execute uma query $text para "silk". A pesquisa retorna todos os documentos mencionando "silk" em description.

Para aprender como criar e usar índices de texto, consulte:

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

Em um índice composto com uma chave de índice de texto e outros tipos de chave, somente o campo de índice de texto determina se o índice faz referência a um documento. Outras chaves não afetam as referências de documento .

Os índices de texto não podem cobrir uma query.

Os índices de texto são sempre esparsos. O MongoDB ignora a opção sparse ao criar índices de texto.

O MongoDB não adiciona uma entrada de índice de texto para documentos que não possuem o campo de índice de texto , têm valores nulos ou têm arrays vazias.

Os índices de texto têm estas características de armazenamento e desempenho:

  • Os índices de texto podem consumir uma quantidade significativa de RAM. Eles contêm uma entrada de índice para cada palavra derivada única em cada campo indexado para cada documento.

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

  • Ao construir índices de texto grandes, garanta limites de descritor de arquivo suficientes. Consulte as configurações recomendadas.

  • Os índices de texto impacto o desempenho de gravação porque o MongoDB deve adicionar uma entrada de índice para cada palavra única derivada em cada campo indexado de novos documentos.

  • Os índices de texto armazenam palavras individuais, não cadeias de caracteres de várias palavras ou informações de proximidade de palavras. Queries com várias palavras são executadas mais rapidamente quando toda a coleção cabe na RAM.

Voltar

$text Linguagem de query

Nesta página