Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Menu Docs
Página inicial do Docs
/ /

Crie um índice de texto em vários idiomas em sistemas autogerenciados

Observação

MongoDB Search oferece funcionalidades avançadas de pesquisa de texto completo, incluindo vários analisadores. Recomendamos usar índices de pesquisa MongoDB em vez de índices de texto.

Você pode criar um índice de texto para melhorar o desempenho das query de texto executadas em uma coleção contendo documentos ou documentos incorporados com texto em várias linguagens.

Se uma coleção contiver documentos ou documentos incorporados que estejam em várias linguagens diferentes, inclua um campo chamado language e especifique a linguagem para esses documentos como o valor do campo. Para ver as linguagens disponíveis para indexação de texto, consulte Linguagens de query $text em implantações autogerenciadas.

Sua operação de inserção deve ser semelhante a este exemplo para oferecer suporte à indexação de texto para vários idiomas:

db.<collection>.insertOne(
{
<field>: <value>,
language: <language>
}
)

Crie uma coleção quotes que contenha documentos em vários idiomas que incluam o campo language :

db.quotes.insertMany( [
{
_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í."
}
}
] )

A seguinte operação cria um índice de texto nos campos original e translation.quote :

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

Observação

O inglês é o idioma padrão para índices. Se você não especificar o default_language, sua query deverá especificar o idioma com o parâmetro $language. Para obter mais informações, consulte Especificar idioma para índices de texto no MongoDB autogerenciado.

O índice resultante suporta $text consultas para os documentos e documentos incorporados contendo os campos original e translation.quote. O índice de texto segue regras diferentes de derivação de sufixo e ignora palavras vazias específicas para cada idioma, com base no valor no campo language.

Por exemplo, a query a french seguir procura a palavra réalité.

db.quotes.find(
{ $text:
{ $search: "réalité" }
}
)

Saída:

[
{
_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é."
}
]
}
]

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

  • Se o documento de inclusão contiver o campo language , o índice usará o idioma do documento para os documentos incorporados.

  • Caso contrário, o índice usa 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 é o inglês.

Voltar

Especificar o idioma padrão para um índice de texto

Nesta página