Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
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 para default_language.

El siguiente ejemplo crea para la colección quotes un índice text en el campo content y establece el 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 lenguaje 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 lenguaje especificado en un documento incrustado anula el lenguaje especificado en un documento de contención o el lenguaje por defecto del índice.

Consulte Idiomas de búsqueda de texto en implementaciones autogestionadas para ver la lista de 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 emplea el lenguaje por defecto, que es el 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