Nota
MongoDB ofrece una solución mejorada de búsqueda de texto completo, MongoDB Search, y una solución de búsqueda semántica, MongoDB Vector Search. Recomendamos que utilizar el índice de MongoDB Search o índices de MongoDB Vector Search en lugar índices de texto.
Esta página describe el comportamiento de versión 3 índices de texto.
Insensibilidad a las mayúsculas y minúsculas
Los índices de texto no distinguen entre mayúsculas y minúsculas. El índice de texto no distingue entre caracteres en mayúscula y minúscula, como e y E.
Los índices de texto admiten plegado/mapping de mayúsculas y minúsculas/codificación de casos según lo especificado en la Base de datos de caracteres de Unicode 8.0 "Case Folding":
C común
Simple S
T especial para lenguajes turcos
Caracteres con diacríticos, como
éyÉCaracteres de alfabetos no latinos, como
Иyиen el alfabeto cirílico.
Las versiones anteriores del índice de texto solo distinguen entre mayúsculas y minúsculas para los caracteres latinos sin diacríticos [A-z]. Las versiones previas de índices de texto tratan todos los demás caracteres como distintos.
Insensibilidad a los diacríticos
Los índices de texto son insensibles a los signos diacríticos. El índice de texto no distingue entre caracteres que contienen signos diacríticos y sus contrapartes sin marcas, como é, ê y e. Más específicamente, el índice de texto elimina las marcas categorizadas como diacríticos en la Lista de Propiedades de la base de datos de Caracteres Unicode 8.0 .
Las versiones anteriores del índice de texto tratan los caracteres con signos diacríticos como distintos.
Delimitadores de tokenización
Para la tokenización, los índices de texto utilizan los delimitadores categorizados bajo Dash, Hyphen, Pattern_Syntax, Quotation_Mark, Terminal_Punctuation y White_Space en la Lista Prop de la base de datos de caracteres Unicode 8.0 .
Por ejemplo, en la string Il a dit qu'il «était le meilleur joueur du
monde», las comillas («, ») y los espacios son delimitadores.
Versiones anteriores del índice tratan « como parte del término «était y » como parte del término monde».
entrada de índice
Los índices de texto tokenizan y derivan los términos en los campos indexados para las entradas del índice. El índice utiliza una derivación de sufijos simple específica del lenguaje. Para cada documento en la colección, el índice de texto almacena una entrada de índice para cada término con raíz única en cada campo indexado.
Lenguajes admitidos y palabras vacías
MongoDB admite consultas $text para varios idiomas. Los índices de texto utilizan una simple reducción de sufijos específica de cada lenguaje. Los índices de texto también descartan palabras vacías específicas del lenguaje como the, an, a y and en inglés. Para obtener una lista de los idiomas admitidos, consulta $text lenguajes de consulta en implementaciones autogestionadas.
Para especificar un lenguaje para el índice de texto, consulta Especifica el lenguaje para índices de texto en MongoDB autogestionado.
Propiedad dispersa
Los índices de texto siempre son dispersos. Cuando creas un índice de texto, MongoDB ignora la opción sparse.
Si un documento existente o recién insertado no tiene un campo de índice de texto (o el campo es nulo o un arreglo vacío), MongoDB no agrega una entrada de índice de texto para el documento.
Obtén más información
Para aprender sobre las restricciones de índices de texto, consulta Versiones de índices de texto en implementaciones autogestionadas.