Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /
Text Indexes
/ / / /

Especificar el idioma predeterminado para un índice de texto en implementaciones autogestionadas

Este tutorial describe cómo especificar el idioma por defecto asociado con el índice de texto y también cómo crear índices de texto para colecciones que contienen documentos en diferentes idiomas.

El lenguaje por defecto asociado a los datos indexados determina las reglas para analizar las raíces de palabras (es decir, de derivación) e ignorar las palabras vacías. El lenguaje por defecto para los datos indexados es english.

Para especificar un diferente lenguaje, utiliza la opción default_language al crear el text índice. Ver Idiomas de búsqueda de texto en implementaciones autogestionadas para los idiomas disponibles default_language para.

El siguiente ejemplo crea para la colección quotes un índice text en el campo content y establece default_language en spanish:

db.quotes.createIndex(
{ content : "text" },
{ default_language: "spanish" }
)

Si una colección contiene documentos o documentos incrustados que están en diferentes lenguajes, incluye un campo llamado language en los documentos o documentos incrustados y especifica como su valor el lenguaje para ese documento o documento incrustado.

MongoDB utilizará el idioma especificado para ese documento o documento incrustado al crear el índice text:

  • El lenguaje especificado en el documento sobrescribe el lenguaje por defecto para el índice text.

  • El idioma especificado en un documento incrustado anula el idioma especificado en un documento adjunto o el idioma predeterminado para el índice.

Consulte Idiomas de búsqueda de texto en implementaciones autoadministradas para obtener una lista de los idiomas admitidos.

Por ejemplo, una colección quotes contiene documentos multilingües que incluyen el campo language en el documento y/o el documento incrustado según se requiera:

{
_id: 1,
language: "portuguese",
original: "A sorte protege os audazes.",
translation:
[
{
language: "english",
quote: "Fortune favors the bold."
},
{
language: "spanish",
quote: "La suerte protege a los audaces."
}
]
}
{
_id: 2,
language: "spanish",
original: "Nada hay más surrealista que la realidad.",
translation:
[
{
language: "english",
quote: "There is nothing more surreal than reality."
},
{
language: "french",
quote: "Il n'y a rien de plus surréaliste que la réalité."
}
]
}
{
_id: 3,
original: "is this a dagger which I see before me.",
translation:
{
language: "spanish",
quote: "Es este un puñal que veo delante de mí."
}
}

Si crea un índice text en el campo quote con el lenguaje por defecto de inglés.

db.quotes.createIndex( { original: "text", "translation.quote": "text" } )

Luego, para los documentos y documentos incrustados que contienen el campo language, el índice text utiliza ese lenguaje para analizar raíces de palabras y otras características lingüísticas.

Para los documentos incrustados que no contienen el campo language,

  • Si el documento principal contiene el campo language, el índice utiliza el lenguaje del documento para el documento incrustado.

  • De lo contrario, el índice utiliza el idioma predeterminado para los documentos incrustados.

Para los documentos que no contienen el campo language, el índice utiliza el idioma predeterminado, que es inglés.

Para usar un campo con un nombre distinto de language, incluye la opción language_override al crear el índice.

Por ejemplo, da la siguiente orden para usar idioma como el nombre del campo en lugar de language:

db.quotes.createIndex( { quote : "text" },
{ language_override: "idioma" } )

Los documentos de la colección quotes pueden especificar un idioma con el campo idioma:

{ _id: 1, idioma: "portuguese", quote: "A sorte protege os audazes" }
{ _id: 2, idioma: "spanish", quote: "Nada hay más surrealista que la realidad." }
{ _id: 3, idioma: "english", quote: "is this a dagger which I see before me" }

Volver

Text Indexes

En esta página