Restrições de índice de texto
Nesta página
Os índices de texto têm estas restrições:
Um índice de texto por collection
Uma coleção pode ter no máximo um índice de texto.
O Atlas Search (disponível no MongoDB Atlas) suporta vários índices de texto completo do Atlas Search em uma única collection. Para saber mais, consulte a documentação daAtlas Search .
Pesquisar e dicas de texto
Se uma query incluir uma expressão $text
, você não poderá usar hint()
para especificar o índice a ser usado na query.
pesquisar de texto e frases
Se a string $search
de uma operação $text
incluir uma frase e termos individuais, $text
corresponderá apenas aos documentos que incluem a frase.
Você não pode usar o operador $text
com várias frases.
Índice e classificação de texto
Os índices de texto não podem melhorar o desempenho das operações de classificação. Essa restrição se aplica a índices de texto composto e de campo único.
Índice de texto composto
Um índice composto pode incluir uma chave de índice de texto em combinação com chaves de índice crescentes e decrescentes. No entanto, os índices de texto compostos têm estas restrições:
Um índice de texto composto não pode incluir nenhum outro tipo de índice especial, como campos de índice multichave ou geoespacial .
Se o índice de texto composto incluir chaves que precedem a chave do índice de texto, para usar
$text
, o predicado de query deverá incluir condições de correspondência de igualdade nas chaves anteriores.Ao criar um índice de texto composto, todas as chaves de índice de texto devem ser listadas adjacentemente no documento de especificação do índice.
Para exemplos de índices de texto compostos, consulte estas páginas:
Opção de agrupamento
Os índices de texto suportam apenas a comparação binária e não suportam a opção de agrupamento . A comparação binária compara o valor numérico Unicode de cada caractere em cada string e não leva em conta maiúsculas e minúsculas ou acentos.
Para criar um índice de texto em uma collection que tem um agrupamento não simples, você deve especificar explicitamente { collation: { locale: "simple"
} }
ao criar o índice.
Por exemplo, pense em uma coleção chamada collationTest
com um agrupamento de { locale: "en" }
:
db.createCollection( "collationTest", { collation: { locale: "en" } } )
Para criar um índice de texto na collection collationTest
, você deve especificar { collation: { locale: "simple" } }
. O seguinte comando cria um índice de texto no campo quotes
:
db.collationTest.createIndex( { quotes: "text" }, { collation: { locale: "simple" } } )