Observação
Esta página descreve os recursos de query de texto para sistemas autogerenciados (não Atlas). Para dados hospedados no MongoDB, o MongoDB também oferece uma solução aprimorada de query de texto completo, MongoDB Search e uma solução de pesquisa vetorial, Vector Search.
Os índices de texto oferecem suporte a queries de pesquisa de texto 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 collections 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 collection 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", ... } )
Suporte a queries $text
Os índices de texto suportam operações de query do $text em implantações locais. Para usar $text, você deve criar um índice de texto.
Suporte a $encStr
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.
Casos de uso
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.
Começar
Para saber como criar e usar índices de texto, consulte:
Detalhes
Esta seção descreve os detalhes do índice de texto.
Índices de texto compostos
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 .
Queries cobertas
Os índices de texto não podem cobrir uma query.
sparse Propriedade
Os índices de texto são sempre esparsos. O MongoDB ignora a sparse opção 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.
Requisitos de armazenamento e custos de desempenho
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.
Saiba mais
Para saber mais sobre índices de texto, consulte:
Para exemplos de pesquisa de texto, consulte o
$text reference page.Para obter exemplos de operações
$textem pipelines de agregação, consulte $text no pipeline de agregação em implantações autogerenciadas.