Menu Docs

Página inicial do DocsDesenvolver aplicaçõesManual do MongoDB

Especificar um idioma para o índice de texto

Nesta página

  • Especificar o idioma padrão para um índice text
  • Criar um índice text para uma collection em vários idiomas

Este tutorial descreve como especificar o idioma padrão associado ao índice de texto e também como criar índices de texto para coleções que contêm documentos em idiomas diferentes.

O idioma padrão associado aos dados indexados determina as regras para analisar as raizes das palavras (ou seja, derivação) e ignorar as palavras de parada. O idioma padrão para os dados indexados é english.

Para especificar um idioma diferente, utilize a opção default_language ao criar o índice text . Consulte Idiomas de pesquisa de texto para obter os idiomas disponíveis para default_language.

O exemplo a seguir cria para a collection quotes um índice text no campo content e define o default_language para spanish:

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

Se uma collection contiver documentos ou documentos incorporados que estejam em idiomas diferentes, inclua um campo chamado language nos documentos ou documentos incorporados e especifique como seu valor o idioma desse documento ou documento incorporado.

O MongoDB utilizará o idioma especificado para este documento ou documento incorporado ao criar o índice text :

  • O idioma especificado no documento substitui o idioma padrão para o índice text .

  • O idioma especificado em um documento incorporado substitui o idioma especificado em um documento de encerramento ou o idioma padrão para o índice.

Consulte Idiomas de pesquisa de texto para obter uma lista de idiomas suportados.

Por exemplo, uma collection quotes contém documentos em vários idiomas que incluem o campo language no documento e/ou no documento incorporado, conforme necessário:

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

Se você criar um índice text no campo quote com o idioma padrão inglês.

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

Em seguida, para os documentos e documentos incorporados que contêm o campo language , o índice text usa esse idioma para analisar sementes de palavras e outras características lingüísticas.

Para documentos incorporados que não contêm o campo language ,

  • Se o documento anexado contiver o campo language , o índice utilizará o idioma do documento para o documento incorporado.

  • Caso contrário, o índice usará o idioma padrão para os documentos incorporados.

Para documentos que não contêm o campo language , o índice utiliza o idioma padrão, que é inglês.

Para utilizar um campo com um nome diferente de language, inclua a opção language_override ao criar o índice.

Por exemplo, forneça o seguinte comando para usar idioma como o nome do campo em vez de language:

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

Os documentos da collection quotes podem especificar um idioma com o 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" }
← Índices de texto