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 predeterminado asociado con el índice de texto y también cómo crear índices de texto para colecciones que contienen documentos en diferentes idiomas.

El idioma predeterminado asociado a los datos indexados determina las reglas para analizar las raíces de las palabras (es decir, la lematización) e ignorar las palabras vacías. El idioma predeterminado para los datos indexados es english.

Para especificar un idioma diferente, utilice la opción default_language al crear el índice text. Consulte 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 idiomas, incluya un campo llamado language en los documentos o documentos incrustados y especifique como su valor el idioma de ese documento o documento incrustado.

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

  • El idioma especificado en el documento anula el idioma predeterminado 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 en varios idiomas que incluyen el campo language en el documento y/o en el documento incrustado según sea necesario:

{
_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 idioma predeterminado 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 idioma para analizar las raíces de las 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 utilizar un campo con un nombre distinto de language, incluya la opción language_override al crear el índice.

Por ejemplo, dé el siguiente comando para utilizar idioma como nombre de 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