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

Filtros de Caracteres

Los filtros de caracteres examinan el texto carácter por carácter y realizan operaciones de filtrado. Los filtros de caracteres requieren un campo de tipo, y algunos también aceptan opciones adicionales.

Sintaxis
"charFilters": [
{
"type": "<filter-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.


➤ Utilice el menú desplegable Seleccionar su interfaz para establecer el método para ejecutar los ejemplos en esta página.


MongoDB Search admite los siguientes tipos de filtro de caracteres:

El filtro de caracteres htmlStrip elimina los constructos HTML.

El filtro de caracteres htmlStrip tiene los siguientes atributos:

Nombre
Tipo
¿Requerido?
Descripción

type

string

Sí

Etiqueta legible por humanos que identifica este tipo de filtro de caracteres. El valor debe ser htmlStrip.

ignoredTags

Arreglo de cadenas

Sí

Lista que contiene las etiquetas HTML que se excluirán del filtro.

El siguiente ejemplo de definición de índice indexa el campo text.en_US en la colección de minutos usando un analizador personalizado llamado htmlStrippingAnalyzer. El analizador personalizado especifica lo siguiente:

  • Elimina todas las etiquetas HTML del texto excepto la etiqueta a utilizando el filtro de caracteres htmlStrip.

  • Generate tokens based on word break rules from the Unicode Text Segmentation algorithm using the standard tokenizer.

La siguiente consulta busca ocurrencias de la cadena head en el campo text.en_US de la colección minutes.

MongoDB Search no devuelve el documento con _id: 1 porque la cadena head es parte de la etiqueta HTML <head>. El documento con _id: 3 contiene etiquetas HTML, pero la cadena head está en otro lugar, por lo que el documento es una coincidencia. La siguiente tabla muestra los tokens que MongoDB Search genera para los valores del campo text.en_US en los documentos _id: 1, _id: 2 y _id: 3 en la colección minutos utilizando el htmlStrippingAnalyzer.

ID de documento
Tokens de salida

_id: 1

This, page, deals, with, department, meetings

_id: 2

The, head, of, the, sales, department, spoke, first

_id: 3

We'll, head, out, to, the, conference, room, by, noon

The icuNormalize character filter normalizes text with the ICU Normalizer. It is based on Lucene's ICUNormalizer2CharFilter.

El filtro de carácter icuNormalize tiene el siguiente atributo:

Nombre
Tipo
¿Requerido?
Descripción

type

string

Sí

Etiqueta legible por humanos que identifica este tipo de filtro de caracteres. El valor debe ser icuNormalize.

El siguiente ejemplo de definición de índice indexa el campo message en la colección de minutos usando un analizador personalizado llamado normalizingAnalyzer. El analizador personalizado especifica lo siguiente:

  • Normalizar el texto del valor del campo message con el filtro de caracteres icuNormalize.

  • Tokeniza las palabras en el campo basándose en la aparición de espacios en blanco entre palabras usando el tokenizador de espacios en blanco.

La siguiente query busca ocurrencias de la string no (para número) en el campo message de la colección minutes.

MongoDB Search hizo coincidir el documento con _id: 4 con el término de la query no porque normalizaba el símbolo de número № en el campo utilizando el filtro de caracteres icuNormalize y creaba el token no para esa abreviatura tipográfica de la palabra "número". MongoDB Search genera los siguientes tokens para el valor del campo message del documento _id: 4 utilizando normalizingAnalyzer:

ID de documento
Tokens de salida

_id: 4

write, down, your, signature, or, phone, no

El filtro de caracteres mapping aplica mapeos de normalización especificados por el usuario a los caracteres. Se basa en el MappingCharFilter de Lucene.

El filtro de caracteres mapping tiene los siguientes atributos:

Nombre
Tipo
¿Requerido?
Descripción

type

string

Sí

Etiqueta legible por humanos que identifica este tipo de filtro de caracteres.

El valor debe ser mapping.

mappings

Objeto

Sí

Objeto que contiene una lista separada por comas de mapeos. Un mapeo indica que se debe sustituir un carácter o grupo de caracteres por otro, en el formato <original> : <replacement>.

El siguiente ejemplo de definición de índice indexa el campo page_updated_by.phone en la colección de minutos usando un analizador personalizado llamado mappingAnalyzer. El analizador personalizado especifica lo siguiente:

  • Elimina las instancias de guion (-), punto (.), paréntesis abierto ((), paréntesis cerrado ( )) y caracteres de espacio en el campo de teléfono utilizando el filtro de caracteres mapping.

  • Tokeniza toda la entrada como un solo token utilizando el tokenizador de palabras clave.

La siguiente consulta busca en el campo page_updated_by.phone la string 1234567890.

Los resultados de búsqueda de MongoDB contienen un documento donde los números en la cadena phone coinciden con la string del query. MongoDB Search emparejó el documento con el string del query aunque el query no incluya los paréntesis alrededor del código de área telefónico y el guion entre los números porque MongoDB Search eliminó estos caracteres usando el filtro de caracteres mapping y creó un solo token para el valor del campo. Específicamente, MongoDB Search generó el siguiente token para el campo phone en el documento con _id: 1:

ID de documento
Tokens de salida

_id: 1

1234567890

MongoDB Search también coincidiría con el documento con _id: 1 para búsquedas de (123)-456-7890, 123-456-7890, 123.456.7890, etc., porque para los campos Cómo indexar campos de String, MongoDB Search también analiza los términos de la consulta de búsqueda mediante el analizador de índices (o si se especifica, usando el searchAnalyzer). La siguiente tabla muestra los tokens que MongoDB Search crea al eliminar las instancias del guion (-), punto (.), paréntesis abierto ((), paréntesis cerrado ( )) y los caracteres de espacio en el término de query:

query término
Tokens de salida

(123)-456-7890

1234567890

123-456-7890

1234567890

123.456.7890

1234567890

The persian character filter replaces instances of zero-width non-joiner with the space character. This character filter is based on Lucene's PersianCharFilter.

El filtro de carácter persian tiene el siguiente atributo:

Nombre
Tipo
¿Requerido?
Descripción

type

string

Sí

Etiqueta legible por humanos que identifica este tipo de filtro de caracteres. El valor debe ser persian.

El siguiente ejemplo de definición de índice indexa el campo text.fa_IR en la colección de minutos usando un analizador personalizado llamado persianCharacterIndex. El analizador personalizado especifica lo siguiente:

  • Aplica el filtro de caracteres persian para sustituir los caracteres no imprimibles en el valor del campo por el carácter de espacio.

  • Utiliza el tokenizador de espacio en blanco para crear tokens basados en las apariciones de espacios en blanco entre palabras.

La siguiente consulta busca en el campo text.fa_IR el término صحبت.

MongoDB Search devuelve el _id: 2 documento que contiene el término de consulta. MongoDB Search coincide el término de query con el documento al reemplazar primero las instancias de separadores de no-conectores de ancho cero por el carácter de espacio y luego crear un token individual por cada palabra en el valor del campo basándose en la aparición de espacios en blanco entre las palabras. Específicamente, MongoDB Search genera los siguientes tokens para el documento con _id: 2:

ID de documento
Tokens de salida

_id: 2

ابتدا, رئیس, بخش, فروش, صحبت, کرد

Para ver definiciones de índice adicionales y consultas que utilizan el filtro de caracteres mapping, consulte los siguientes ejemplos de la página de referencia: