Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
MongoDB Branding Shape
Click here >
Docs Menu

Analizador de espacio en blanco

El analizador whitespace divide el texto en términos contenidos en tokens, buscables allí donde encuentra un carácter de espacio en blanco. Deja todo el texto en su forma original, respetando las mayúsculas y minúsculas.

Si seleccionas Refine Your Index, la interfaz de usuario de Atlas muestra una sección titulada View text analysis of your selected index configuration dentro de la sección Index Configurations. Si amplía esta sección, la Interfaz de Usuario de Atlas muestra el índice y los tokens de búsqueda que el analizador whitespace genera para cada string de muestra. Puede ver los tokens que el analizador whitespace crea para un documento de muestra incorporado y un string del query cuando crea o edita un índice en la Interfaz de Usuario de Atlas Visual Editor.

Importante

MongoDB Search no indexará los campos de string en los que los tokens del analizador superen los 32766 bytes de tamaño. Si se utiliza el analizador de keywords, los campos de string que superen los 32766 bytes no se indexarán.

El siguiente ejemplo de definición de índice especifica un índice en el campo title de la colección sample_mflix.movies utilizando el analizador whitespace. Para seguir este ejemplo, cargue los datos de muestra en su clúster y utilice mongosh o navegue hasta la página Create a Search Index en la Interfaz de Usuario de Atlas siguiendo los pasos del tutorial Crear un índice de búsqueda de MongoDB.

Luego, utilizando la colección movies como fuente de datos, sigue el procedimiento del ejemplo para crear un índice desde mongosh o la interfaz de usuario de Atlas Visual Editor o JSON editor.


➤ Utiliza el menú desplegable Seleccionar el lenguaje para establecer la interfaz del ejemplo en esta página.


  1. Se debe hacer clic en Refine Your Index para configurar el índice.

  2. En la sección Index Configurations, cambie Dynamic Mapping a off.

  3. En la sección Field Mappings, haz clic en Add Field para abrir la ventana Add Field Mapping.

  4. Selecciona title del menú desplegable Field Name.

  5. Haga clic en Customized Configuration.

  6. Haz clic en el menú desplegable Data Type y selecciona String si aún no está seleccionado.

  7. Expande String Properties y realiza los siguientes cambios:

    Analizador de índices

    Selecciona lucene.whitespace del menú desplegable.

    Analizador de búsqueda

    Selecciona lucene.whitespace del menú desplegable.

    Opciones del índice

    Usa el offsets por defecto.

    Store

    Usa el true por defecto.

    Ignorar lo anterior

    Mantén la configuración por defecto.

    Normas

    Usa el include por defecto.

  8. Haga clic en Add.

  9. Haga clic en Save Changes.

  10. Haga clic en Create Search Index.

  1. Reemplazar la definición predeterminada del índice con la siguiente definición del índice.

    {
    "mappings": {
    "fields": {
    "title": {
    "type": "string",
    "analyzer": "lucene.whitespace",
    "searchAnalyzer": "lucene.whitespace"
    }
    }
    }
    }
  2. Haga clic en Next.

  3. Haga clic en Create Search Index.

1db.movies.createSearchIndex(
2 "default",
3 {
4 "mappings": {
5 "fields": {
6 "title": {
7 "type": "string",
8 "analyzer": "lucene.whitespace",
9 "searchAnalyzer": "lucene.whitespace"
10 }
11 }
12 }
13 }
14)

La siguiente query busca el término Lion's en el campo title.

  1. Haz clic en el botón Query para tu índice.

  2. Haz clic en Edit Query para editar la consulta.

  3. Haz clic en la barra de query y selecciona la base de datos y la colección.

  4. Reemplaza la consulta por defecto por la siguiente y haz clic en Find:

    [
    {
    "$search": {
    "text": {
    "query": "Lion's",
    "path": "title"
    }
    }
    }
    ]
    SCORE: 3.7370920181274414 _id: "573a13ebf29313caabdcfc8d"
    awards: Object
    cast: Array (4)
    countries: Array (1)
    directors: Array (1)
    fullplot: "A documentary on young actress, Marianna Palka, as she confronts her r…"
    genres: Array (3)
    imdb: Object
    languages: Array (1)
    lastupdated: "2015-09-03 00:37:45.227000000"
    num_mflix_comments: 0
    plot: "A documentary on young actress, Marianna Palka, as she confronts her r…"
    poster: "https://m.media-amazon.com/images/M/MV5BMTgzMTc2OTg2N15BMl5BanBnXkFtZT…"
    released: 2014-01-18T00:00:00.000+00:00
    runtime: 15
    title: "The Lion's Mouth Opens"
    type: "movie"
    writers: Array (1)
    year: 2014
db.movies.aggregate([
{
"$search": {
"text": {
"query": "Lion's",
"path": "title"
}
}
},
{
"$project": {
"_id": 0,
"title": 1
}
}
])
[ { title: "The Lion's Mouth Opens" } ]

MongoDB Search devuelve estos documentos realizando lo siguiente para el texto en el campo title utilizando el analizador lucene.whitespace:

  • Mantén la letra en su forma original para el texto.

  • Divide el texto en tokens donde encuentre un carácter de espacio en blanco.

La siguiente tabla muestra los tokens (términos de búsqueda) que MongoDB Search crea utilizando el Analizador de espacios en blanco y, por el contrario, el Analizador simple y el Analizador de palabras clave para los documentos en los resultados:

Título
Tokens del analizador Whitespace
Tokens del Analizador Simple
Tokens del Analizador de Palabras clave

The Lion's Mouth Opens

The, Lion's, Mouth, Opens

the, lion, s, mouth, opens

The Lion's Mouth Opens

El índice que utiliza el analizador whitespace distingue mayúsculas y minúsculas. Por lo tanto, MongoDB Search es capaz de coincidir el término de query Lion's con el token Lion's creado por el analizador whitespace.