Nota
Esta página describe las capacidades de query de texto para implementaciones autogestionadas (no-Atlas). Para los datos alojados en MongoDB Atlas, MongoDB ofrece una solución mejorada de query de texto completo. Búsqueda Atlas y una solución de búsqueda vectorial, Búsqueda vectorial Atlas.
Soporte para índices de texto consultas de búsqueda de texto en campos con contenido de string. Los índices de texto mejoran el rendimiento al buscar palabras o cadenas específicas.
Una colección puede tener solo un índice de texto, pero ese índice puede incluir varios campos.
Para crear un índice de texto, utilice el siguiente prototipo:
db.<collection>.createIndex( { <field1>: "text", <field2>: "text", ... } )
$text Query Support
Soporte para índices de texto $text consultas sobre implementaciones autogestionadas. Debe crear un índice de texto para usar $text.
Casos de uso
La colección clothing de una tienda en línea tiene un campo description que contiene un string de texto que describe cada artículo. Para encontrar ropa hecha de "silk", crea un índice de texto en description y ejecuta una query $text para "silk". La búsqueda devuelve todos los documentos que mencionan "silk" en description.
Empezar
Para aprender a crear y utilizar índices de texto, consulta:
Detalles
Esta sección describe los detalles del índice de texto.
Índices de texto compuestos
En un índice compuesto con una clave de índice de texto y otros tipos de claves, solo el campo de índice de texto determina si el índice hace referencia a un documento. Otras claves no afectan a las referencias de los documentos.
Consultas cubiertas
Los índices de texto no pueden cubrir una consulta.
sparse Propiedad
Los índices de texto siempre son dispersos. MongoDB ignora la opción sparse al crear índices de texto.
MongoDB no agrega una entrada de índice para los documentos que carecen del campo de índice de texto, tienen valores nulos o tienen arreglos vacíos.
Requisitos de almacenamiento y costos de rendimiento
Los índices de texto tienen estas características de almacenamiento y rendimiento:
Los índices de texto pueden consumir una cantidad significativa de RAM. Contienen una entrada de índice para cada palabra única radicalizada en cada campo indexado para cada documento.
La creación de un índice de texto es similar a la de un índice de varias claves grande, pero lleva más tiempo que crear un índice ordenado (escalar) sobre los mismos datos.
Al crear índices de texto grandes, se deben garantizar límites suficientes de descriptores de archivos. Ver configuración recomendada.
Los índices de texto impactan el rendimiento de las escrituras porque MongoDB debe agregar una entrada de índice para cada palabra derivada única en cada campo indexado de los documentos nuevos.
Los índices de texto almacenan palabras individuales, no cadenas de varias palabras ni información de proximidad de palabras. Las queries con varias palabras se ejecutan más rápido cuando toda la colección cabe en la memoria RAM.
Obtén más información
Para aprender más sobre los índices de texto, consulte:
Para obtener ejemplos de búsqueda de texto, ve el
$text reference page.Para muestras de operaciones
$texten pipelines de agregación, consulte $text en el pipeline de agregación en implementaciones autogestionadas.