MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Índice de pesquisa de texto completo do MongoDB:erro:muito índice de texto para, por quê?


O MongoDB permite apenas um índice de texto por coleção.

Mas você pode usar um índice de texto que abrange vários campos:
db.collection.ensureIndex( {
    description: "text",
    title: "text"
} );

Dessa forma, você obterá resultados quando a frase que estiver procurando for encontrada em qualquer um deles. Quando isso não é o que você deseja, como quando você tem duas consultas de pesquisa, cada uma retornando resultados de um dos campos, mas não do outro, você tem duas opções.
  1. use um índice de texto de vários campos, mas descarte os resultados que vêm do campo errado na camada do aplicativo.
  2. extraia um dos dois campos para uma coleção diferente. Os documentos nessa coleção podem conter cópias completas, cópias editadas ou apenas o campo que você indexa e o _id do documento original.