Skip to content

Latest commit

 

History

History
114 lines (85 loc) · 5.03 KB

especificar-un-idioma-para-el-indice-de-texto.md

File metadata and controls

114 lines (85 loc) · 5.03 KB

Especificar un idioma para el índice de texto

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 .

Especificar el idioma predeterminado para un textíndice

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

Para especificar un idioma diferente, use la default_languageopción al crear el textíndice. Consulte Idiomas de búsqueda de texto para conocer los idiomas disponibles default_language.

El siguiente ejemplo crea para la quotescolección un text índice en el contentcampo y establece el default_languageen spanish:

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

Crear un textíndice para una colección en varios idiomas

Especificar el idioma del índice dentro del documento

Si una colección contiene documentos o documentos incrustados que están en diferentes idiomas, incluya un campo nombrado languageen los documentos o documentos incrustados y especifique como su valor el idioma para ese documento o documento incrustado.

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

  • El idioma especificado en el documento anula el idioma predeterminado del textíndice.
  • 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 para obtener una lista de los idiomas admitidos.

Por ejemplo, una colección quotescontiene documentos en varios idiomas que incluyen el languagecampo en el documento y / o 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 textíndice en el quotecampo con el idioma predeterminado de inglés.

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

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

Para documentos incrustados que no contienen el languagecampo,

  • Si el documento adjunto contiene el languagecampo, el índice utiliza el idioma 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 languagecampo, el índice utiliza el idioma predeterminado, que es el inglés.

Utilice cualquier campo para especificar el idioma de un documento

Para utilizar un campo con un nombre distinto de language, incluya la language_overrideopción al crear el índice.

Por ejemplo, proporcione el siguiente comando para usarlo idiomacomo nombre de campo en lugar de language:

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

Los documentos de la quotescolección pueden especificar un idioma con el idiomacampo:

{ _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" }