Nota
Esta página describe las funciones de consulta de texto para implementaciones autogestionadas (no Atlas). Para los datos alojados en MongoDB, MongoDB también ofrece una solución mejorada de consulta de texto completo. Búsqueda MongoDB y una solución de búsqueda vectorial, Vector Search.
Soporte de índices de texto Consultas de búsqueda de texto en campos que contienen cadenas. También admiten expresiones de agregación para campos de cadena cifrados en colecciones con cifrado consultable habilitado. Los índices de texto mejoran el rendimiento al buscar palabras o cadenas específicas dentro de una cadena.
Una colección solo puede tener 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", ... } )
Soporte de consultas de texto
Soporte de índices de texto $textoperaciones de consulta en implementaciones locales. Para usar,$text debe crear un índice de texto.
$encStr Soporte
Los índices de texto admiten expresiones de agregación para campos en colecciones de Queryable Encryption con queries de prefijo, sufijo o subcadena habilitadas. Se requiere un índice de texto para usar la expresión $encStrNormalizedEq.
Casos de uso
La colección clothing de una tienda online tiene un campo description que contiene una cadena de texto que describe cada artículo. Para encontrar prendas de "silk", crea un índice de texto en description y ejecuta una consulta $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, consulte:
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 clave, solo el campo de índice de texto determina si el índice hace referencia a un documento. Otras claves no afectan las referencias a documentos.
Consultas cubiertas
Los índices de texto no pueden cubrir una consulta.
sparse Propiedad
Los índices de texto siempre son dispersos. MongoDB ignora la sparse opción al crear índices de texto.
MongoDB no agrega una entrada de índice de texto para los documentos que carecen del campo de índice de texto, tienen valores nulos o tienen matrices vacías.
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 considerable de RAM. Contienen una entrada de índice por cada palabra con raíz única en cada campo indexado de cada documento.
Crear un índice de texto es similar a crear un índice multiclave grande, pero lleva más tiempo que crear un índice ordenado (escalar) con los mismos datos.
Al crear índices de texto grandes, asegúrese de que los descriptores de archivo tengan límites suficientes. Consulte la configuración recomendada.
Los índices de texto afectan el rendimiento de escritura porque MongoDB debe agregar una entrada de índice para cada palabra ú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 entre ellas. Las consultas con varias palabras se ejecutan más rápido cuando toda la colección cabe en la 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.