Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

Cómo indexar campos para autocompletar

Puedes usar el tipo de búsqueda autocomplete de MongoDB para indexar valores de texto en fields de string para el autocompletado. Puedes consultar campos indexados como tipo autocomplete utilizando el operador autocompletar.

También se puede usar el tipo autocomplete para indexar:

Para consideraciones de asignación dinámica, consulte Asignaciones dinámicas.

El tipo autocomplete de búsqueda de MongoDB toma los siguientes parámetros:

Opción
Tipo
Necesidad
Descripción
predeterminado

type

string

Requerido

Etiqueta legible por humanos que identifica este tipo de campo. El valor debe ser string.

analyzer

string

Opcional

Nombre del analizador que se debe utilizar con este mapeo de autocompletado. Se puede utilizar cualquier analizador de búsqueda de MongoDB excepto el lucene.kuromoji analizador de lenguaje y los siguientes tokenizadores y filtros de tokens de analizador personalizado:

lucene.standard

maxGrams

Int

Opcional

Número máximo de caracteres por secuencia indexada. El valor limita la longitud de caracteres de los tokens indexados. Cuando buscas términos más largos que el valor maxGrams, MongoDB Búsqueda trunca los tokens a la longitud maxGrams.

Para conocer las mejores prácticas de maxGrams, consulte maxGrams Configuración.

15

minGrams

Int

Opcional

Número mínimo de caracteres por secuencia indexada. Recomendamos 4 como el valor mínimo. Un valor que sea menor que 4 podría impactar el rendimiento porque el tamaño del índice puede volverse muy grande. Recomendamos el valor por defecto de 2 únicamente para edgeGram.

2

tokenization

enum

Opcional

Estrategia de tokenización que se utilizará en la indexación del campo para autocompletar. El valor puede ser uno de los siguientes:

  • edgeGram - crea tokens indexados, denominados grams, a partir de secuencias de caracteres de longitud variable que comienzan en el lado izquierdo de las palabras, según lo delimitado por el analizador utilizado con este mapeo de autocompletado.

  • rightEdgeGram - crear tokens indexables, conocidos como grams, a partir de secuencias de caracteres de longitud variable que comienzan en el lado derecho de las palabras a medida que las delimita el analizador utilizado con este mapeo de autocompletar.

  • nGram - crear tokens indexables, denominados grams, deslizando una ventana de caracteres de longitud variable sobre una palabra. MongoDB Search crea más tokens para nGram que para edgeGram o rightEdgeGram. Por lo tanto, nGram requiere más espacio y tiempo para indexar el campo. nGram es más adecuado para consultar lenguajes con palabras largas, compuestas o lenguajes que no utilizan espacios.

edgeGram, rightEdgeGram y nGram se aplican a nivel de letra. Por ejemplo, considere la siguiente oración:

The quick brown fox jumps over the lazy dog.

Cuando se tokeniza con un valor de minGrams de 2 y un valor de maxGrams de 5, MongoDB Search indexa la siguiente secuencia de caracteres en función del valor de tokenization que elijas.

th
the
the{SPACE}
the q
qu
qui
quic
uick
...

og
dog
{SPACE}dog
y dog
zy
azy
lazy
{SPACE}lazy
he
the
{SPACE}the
r the
er
ver
over
{SPACE}over
...

th
the
the{SPACE}
the q
he
he{SPACE}
he q
he qu
e{SPACE}
e q
e qu
e qui
{SPACE}q
{SPACE}qu
{SPACE}qui
{SPACE}quic
qu
qui
quic
quick
...

Para consideraciones de rendimiento, consulte Rendimiento de la tokenización.

edgeGram

foldDiacritics

booleano

Opcional

Indicador que señala si se deben realizar normalizaciones como incluir o Remover diacríticos del texto indexado. El valor puede ser uno de los siguientes:

  • true - realizar normalizaciones como ignorar los signos diacríticos en el índice y el texto de la query. Por ejemplo, una búsqueda de cafè devuelve resultados con los caracteres cafè y cafe porque MongoDB Search devuelve resultados con y sin signos diacríticos.

  • false - no realices normalizaciones tales como ignorar las marcas diacríticas en el índice y el texto de la query. Así, MongoDB Search devuelve únicamente resultados que coinciden con los strings con o sin diacríticos en la query. Por ejemplo, una búsqueda de cafè devuelve resultados solo con los caracteres cafè. Una búsqueda de cafe devuelve resultados solo con los caracteres cafe.

true

similarity.type

string

Opcional

Nombre del algoritmo de similitud que se utilizará con este mapeo de cadenas al puntuar con el operador de autocompletar. El valor puede ser uno de los siguientes: bm25, boolean o stableTfl.

Para aprender más sobre los algoritmos de similitud disponibles, consulte Detalles de la puntuación.

bm25

La opción maxGrams especifica la longitud máxima de las subcadenas generadas durante la indexación. El aumento de maxGrams mejora la coincidencia para query más largas al generar más subcadenas. Establecerlo más allá de lo que necesita puede aumentar el tamaño del índice y afectar el rendimiento de la indexación.

Considere las siguientes mejores prácticas al configurar maxGrams:

  • Por defecto, no más de 15. Establece maxGrams en no más de 15 cuando sea posible para evitar un crecimiento innecesario del índice.

  • Alinee con la longitud de la query. Establezca maxGrams en función de la longitud típica de las query de los usuarios, en lugar de indexación para los peores escenarios.

  • Evite la indexación excesiva. Si sus query son más cortas que su valor actual de maxGrams, es posible que esté haciendo más indexación de datos de los necesarios.

  • Usa una alternativa para las query más largas. Si tus querys superan habitualmente los 15 caracteres, usa un analizador personalizado para patrones de tipo prefix, contains y suffix.

La indexación de un campo para autocompletar con una estrategia de tokenización edgeGram, rightEdgeGram o nGram requiere más cómputo y almacenamiento de índice que la indexación de un campo string.

Para la estrategia de tokenización especificada, MongoDB Search concatena tokens secuenciales antes de emitirlos ("shingling"). MongoDB Search emite tokens de entre minGrams y maxGrams caracteres de longitud:

  • Conserva los tokens menores que minGrams.

  • Une los tokens mayores que minGrams pero menores que maxGrams a los tokens siguientes para crear tokens de hasta el número máximo de caracteres especificado.

Los tipos de campo por defecto que MongoDB Search utiliza para las asignaciones dinámicas no incluyen el tipo autocomplete. El uso del tipo autocomplete en asignaciones dinámicas puede aumentar el tamaño del índice y el uso de recursos, y producir resultados de puntuación inesperados. Utilice autocomplete en asignaciones estáticas.

Sin embargo, si necesita incluir autocomplete en asignaciones dinámicas, puede agregarlo a una definición typeSet personalizada. Para obtener más información sobre autocomplete y las configuraciones personalizadas de typeSet, consulte Tamaño y configuración del índice.

Si su conjunto de datos tiene muchos documentos o un amplio rango de datos, la creación de este índice para el operador de autocompletar puede llevar algún tiempo. Para reducir el impacto en otros índices y queries mientras se crea el nuevo índice, cree un índice separado con solo el tipo autocomplete.

Para consideraciones sobre el rendimiento del índice, consulte Consideraciones sobre el rendimiento del índice.

Para aprender más sobre el operador autocomplete y ver queries de ejemplo, consulta autocompletado.

Para ejemplos que demuestran cómo ejecutar consultas que no distinguen entre mayúsculas y minúsculas, de prefijo, que comienzan con y que contienen mediante expresiones regex, consulta Usa MongoDB Search en lugar de queries regex.