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

Tokenizador para analizadores de búsqueda personalizados

El tokenizador de un analizador personalizado determina cómo MongoDB Search divide el texto en fragmentos discretos para su indexación. Las tokenizadoras requieren un campo de tipo, y algunas también requieren opciones adicionales.

Sintaxis
"tokenizer": {
"type": "<tokenizer-type>",
"<additional-option>": "<value>"
}

The sample index definitions and queries on this page use the sample collection named minutes. To try these examples, load the minutes collection on your cluster and navigate to the Create a Search Index page in the Atlas UI following the steps in the Create a MongoDB Search Index tutorial. Then, select the minutes collection as your data source, and follow the example procedure to create an index from the Atlas UI or using mongosh.

The edgeGram tokenizer tokenizes input from the left side, or "edge", of a text input into n-grams of given sizes. You can't use a custom analyzer with edgeGram tokenizer in the analyzer field for synonym or autocomplete field mapping definitions.

El tokenizador edgeGram tiene los siguientes atributos:

Nota

El tokenizador edgeGram genera múltiples tokens de salida por palabra y entre palabras en el texto de entrada, produciendo grafos de tokens.

Because autocomplete field type mapping definitions and analyzers with synonym mappings only work when used with non-graph-producing tokenizers, you can't use a custom analyzer with edgeGram tokenizer in the analyzer field for autocomplete field type mapping definitions or analyzers with synonym mappings.

Nombre
Tipo
¿Requerido?
Descripción

type

string

Sí

Etiqueta legible por humanos que identifica este tipo de tokenizador. El valor debe ser edgeGram.

minGram

entero

Sí

Número de caracteres a incluir en el token más corto creado.

maxGram

entero

Sí

Número de caracteres a incluir en el token más largo creado.

La siguiente definición de índice indexa el campo message en la colección minutes usando un analizador personalizado llamado edgegramExample. Se utiliza el tokenizador edgeGram para crear tokens (términos de búsqueda) de entre 2 y 7 caracteres de longitud a partir del primer carácter en el lado izquierdo de las palabras en el campo message.

La siguiente query busca en el campo message de la colección minutes para el texto que empieza con tr.

MongoDB Search devuelve documentos con _id: 1 y _id: 3 en los resultados porque MongoDB Search creó un token con el valor tr usando el tokenizador edgeGram para los documentos, que coincide con el término de búsqueda. Si indexa el campo message usando el tokenizador standard, MongoDB Search no devolvería ningún resultado para el término de búsqueda tr.

La siguiente tabla muestra los tokens que el tokenizador edgeGram y, en comparación, el tokenizador standard crean para los documentos en los resultados:

tokenizador
Token Outputs

standard

try, to, sign, in

edgeGram

tr, try, try{SPACE}, try t, try to, try to{SPACE}, to, to{SPACE}, to s, to si, to sig, to sign, si, sig, sign, sign{SPACE}, sign i, sign in, in

Use the edgeGram tokenizer when your search terms begin at the start of a word, such as a search for tr matching try. Use the nGram tokenizer when your search terms can begin in the middle of a word, such as a search for eek matching weekly.

El tokenizador keyword tokeniza toda la entrada como un solo token. MongoDB Search no indexa los campos de string que superan los 32766 caracteres cuando se emplea el tokenizador keyword.

El tokenizador keyword tiene los siguientes atributos:

Nombre
Tipo
¿Requerido?
Descripción

type

string

Sí

Etiqueta legible por humanos que identifica este tipo de tokenizador. El valor debe ser keyword.

La siguiente definición de índice indexa el campo message en la colección minutes utilizando un analizador personalizado llamado keywordExample. Utiliza el tokenizador keyword para crear un token (términos buscables) en todo el campo como un único término.

La siguiente query busca la frase try to sign-in en el campo message de la colección minutes.

MongoDB Search devuelve el documento con _id: 3 en los resultados porque MongoDB Search creó un token con el valor try to sign-in usando el tokenizador keyword para los documentos, lo que coincide con el término de búsqueda. Si indexes el campo message utilizando el tokenizador standard, MongoDB Search devuelve documentos con _id: 1, _id: 2 y _id: 3 para el término de búsqueda try to sign-in porque cada documento contiene algunos de los tokens que crea el tokenizador standard.

La siguiente tabla muestra los tokens que el tokenizador keyword y, por comparación, el tokenizador standard crean para el documento con _id: 3:

tokenizador
Token Outputs

standard

try, to, sign, in

keyword

try to sign-in

The nGram tokenizer tokenizes into text chunks, or "n-grams", of given sizes. You can't use a custom analyzer with nGram tokenizer in the analyzer field for synonym or autocomplete field mapping definitions.

El tokenizador nGram tiene los siguientes atributos:

Nombre
Tipo
¿Requerido?
Descripción

type

string

Sí

Etiqueta legible por humanos que identifica este tipo de tokenizador. El valor debe ser nGram.

minGram

entero

Sí

Número de caracteres a incluir en el token más corto creado.

maxGram

entero

Sí

Número de caracteres a incluir en el token más largo creado.

La siguiente definición de índice indexa el campo title en la colección minutes utilizando un analizador personalizado llamado ngramExample. Utiliza el tokenizador nGram para crear tokens (términos buscables) de entre 4 y 6 caracteres de longitud en el campo title.

La siguiente query busca el campo title en la colección minutes para el término ekly.

MongoDB Search devuelve el documento con _id: 1 en los resultados porque MongoDB Search creó un token con el valor ekly utilizando el tokenizador nGram para los documentos, que coincide con el término de búsqueda. Si se indexa el campo title usando el tokenizador standard o edgeGram, MongoDB Search no devolverá ningún resultado para el término de búsqueda ekly.

La siguiente tabla muestra los tokens que el tokenizador nGram, y en comparación, los tokenizadores standard y edgeGram crean para el documento con _id: 1:

tokenizador
Token Outputs

standard

The, team's, weekly, meeting

edgeGram

The{SPACE}, The t, The te, team, team', team's, week, weekl, weekly, meet, meeti, meetin

nGram

The{SPACE}, The t, The te, he t, he te, he tea, e te, e tea, e team, {SPACE}tea, {SPACE}team, {SPACE}team', team, team', team's, eam', eam's, eam's{SPACE}, am's, am's{SPACE}, am's w, m's{SPACE}, m's w, m's we, 's w, 's we, 's wee, s we, s wee, s week, {SPACE}wee, {SPACE}week, {SPACE}weekl, week, weekl, weekly, eekl, eekly, eekly{SPACE}, ekly, ekly{SPACE}, ekly m, kly{SPACE}, kly m, kly me, ly m, ly me, ly mee, y me, y mee, y meet, {SPACE}mee, {SPACE}meet, {SPACE}meeti, meet, meeti, meetin, eeti, eetin, eeting, etin, eting, ting

El tokenizador regexCaptureGroup coincide con un patrón de expresión regular de Java para extraer tokens.

Tip

To learn more about Java regular expression syntax, see the Pattern class in the Java documentation.

El tokenizador regexCaptureGroup tiene los siguientes atributos:

Nombre
Tipo
¿Requerido?
Descripción

type

string

Sí

Etiqueta legible por humanos que identifica este tipo de tokenizador. El valor debe ser regexCaptureGroup.

pattern

string

Sí

Expresión regular para coincidir.

group

entero

Sí

Índice del grupo de caracteres dentro de la expresión coincidente que se van a extraer en tokens. Utilice 0 para extraer todos los grupos de caracteres.

La siguiente definición de índice indexa el campo page_updated_by.phone en la colección minutes utilizando un analizador personalizado llamado phoneNumberExtractor. Utiliza lo siguiente:

  • mappings filtro de caracteres para remover los paréntesis alrededor de los primeros tres dígitos y reemplazar todos los espacios y puntos por guiones

  • regexCaptureGroup tokenizador para crear una sola ficha a partir del primer número de teléfono con formato estadounidense presente en el texto de entrada

La siguiente query busca el campo page_updated_by.phone en la colección minutes para el número de teléfono 123-456-9870.

MongoDB Search devuelve el documento con _id: 3 en los resultados porque MongoDB Search creó un token con el valor 123-456-7890 utilizando el tokenizador regexCaptureGroup para los documentos, que coincide con el término de búsqueda. Si indexas el campo page_updated_by.phone usando el tokenizador standard, MongoDB Search devuelve todos los documentos para el término de búsqueda 123-456-7890.

La siguiente tabla muestra los tokens que el tokenizador regexCaptureGroup y, por comparación, el tokenizador standard crean para el documento con _id: 3:

tokenizador
Token Outputs

standard

123, 456.9870

regexCaptureGroup

123-456-9870

El tokenizador regexSplit divide los tokens usando un delimitador basado en expresiones regulares de Java.

Tip

To learn more about Java regular expression syntax, see the Pattern class in the Java documentation.

El tokenizador regexSplit tiene los siguientes atributos:

Nombre
Tipo
¿Requerido?
Descripción

type

string

Sí

Etiqueta legible por humanos que identifica este tipo de tokenizador. El valor debe ser regexSplit.

pattern

string

Sí

Expresión regular para coincidir.

La siguiente definición de índice indexa el campo page_updated_by.phone en la colección de minutes utilizando un analizador personalizado llamado dashDotSpaceSplitter. Utiliza el tokenizador regexSplit para crear tokens (términos que se pueden buscar) a partir de uno o varios guiones, puntos y espacios en el campo page_updated_by.phone.

La siguiente query busca en el campo page_updated_by.phone de la colección minutes los dígitos 9870.

MongoDB Search devuelve el documento con _id: 3 en los resultados porque MongoDB Search creó un token con el valor 9870 utilizando el tokenizador regexSplit para los documentos, que coincide con el término de búsqueda. Si indexas el campo page_updated_by.phone utilizando el tokenizador standard, MongoDB Search no devolverá ningún resultado para el término de búsqueda 9870.

La siguiente tabla muestra los tokens que el tokenizador regexCaptureGroup y, por comparación, el tokenizador standard crean para el documento con _id: 3:

tokenizador
Token Outputs

standard

123, 456.9870

regexSplit

(123), 456, 9870

The standard tokenizer tokenizes based on word break rules from the Unicode Text Segmentation algorithm.

El tokenizador standard tiene los siguientes atributos:

Nombre
Tipo
¿Requerido?
Descripción

type

string

Sí

Etiqueta legible por humanos que identifica este tipo de tokenizador. El valor debe ser standard.

maxTokenLength

entero

no

Longitud máxima para un solo token. Los tokens mayores a esta longitud se dividen en maxTokenLength en varios tokens.

Por defecto: 255

La siguiente definición de índice indexa el campo message en la colección minutes utilizando un analizador personalizado llamado standardExample. Utiliza el standard tokenizador y el filtro de token stopword.

La siguiente query busca el campo message en la colección minutes para el término signature.

MongoDB Search devuelve el documento con _id: 4 porque MongoDB Search creó un token con el valor signature utilizando el tokenizador standard para los documentos, que coincide con el término de búsqueda. Si indexas el campo message utilizando el tokenizador keyword, MongoDB Search no devolverá ningún resultado para el término de búsqueda signature.

La siguiente tabla muestra los tokens que el tokenizador standard y, en comparación, el analizador keyword, crean para el documento con _id: 4:

tokenizador
Token Outputs

standard

write, down, your, signature, or, phone

keyword

write down your signature or phone №

The uaxUrlEmail tokenizer tokenizes URLs and email addresses. Although uaxUrlEmail tokenizer tokenizes based on word break rules from the Unicode Text Segmentation algorithm, we recommend using uaxUrlEmail tokenizer only when the indexed field value includes URLs and email addresses. For fields that don't include URLs or email addresses, use the standard tokenizer to create tokens based on word break rules.

El tokenizador uaxUrlEmail tiene los siguientes atributos:

Nombre
Tipo
¿Requerido?
Descripción

type

string

Sí

Etiqueta legible por humanos que identifica este tipo de tokenizador. El valor debe ser uaxUrlEmail.

maxTokenLength

Int

no

Número máximo de caracteres en un token.

Por defecto: 255

El tokenizador whitespace tokeniza en función de la aparición de espacios en blanco entre palabras.

El tokenizador whitespace tiene los siguientes atributos:

Nombre
Tipo
¿Requerido?
Descripción

type

string

Sí

Etiqueta legible por humanos que identifica este tipo de tokenizador. El valor debe ser whitespace.

maxTokenLength

entero

no

Longitud máxima para un solo token. Los tokens mayores a esta longitud se dividen en maxTokenLength en varios tokens.

Por defecto: 255

La siguiente definición de índice indexa el campo message en la colección minutes utilizando un analizador personalizado llamado whitespaceExample. Utiliza el tokenizador whitespace para crear tokens (términos buscables) a partir de cualquier espacio en blanco en el campo message.

La siguiente query busca el campo message en la colección minutes para el término SIGN-IN.

MongoDB Search devuelve el documento con _id: 3 en los resultados porque MongoDB Search creó un token con el valor sign-in utilizando el tokenizador whitespace para los documentos, que coincide con el término de búsqueda. Si indexas el campo message usando el tokenizador standard, MongoDB Search devuelve documentos con _id: 1, _id: 2 y _id: 3 para el término de búsqueda sign-in.

La siguiente tabla muestra los tokens que el tokenizador whitespace y, por comparación, el tokenizador standard crean para el documento con _id: 3:

tokenizador
Token Outputs

standard

try, to, sign, in

whitespace

try, to, sign-in