Menu Docs
Página inicial do Docs
/ /

Especificar idioma para índices de texto no MongoDB autogerenciado

Observação

MongoDB Search oferece funcionalidades avançadas de pesquisa de texto completo, incluindo suporte para mais analisadores de linguagens. Recomendamos usar índices de pesquisa do MongoDB e o estágio $search em vez de índices de texto e o operador $text.

Por padrão, o default_language para índices de texto é english. Para melhorar o desempenho de consultas $text que não estejam em inglês, você pode especificar um idioma padrão diferente associado ao seu índice de texto.

O idioma padrão associado aos dados indexados determina as regras de lematização de sufixos. O idioma padrão também determina quais palavras de parada específicas do idioma (por exemplo, the, an, a e and em inglês) não são indexadas.

Para especificar um idioma diferente, utilize a opção default_language ao criar o índice de texto. Para ver as linguagens disponíveis para indexação de texto, consulte Linguagens de query $text em Implantações Autogerenciadas. Sua operação deve se assemelhar a este protótipo:

db.<collection>.createIndex(
{ <field>: "text" },
{ default_language: <language> }
)

Se você especificar um valor default_language de none, o índice de texto analisará cada palavra no campo, incluindo palavras vazias, e ignorará a derivação do sufixo.

Crie uma coleção do quotes que contenha os seguintes documentos com um campo de texto em espanhol:

db.quotes.insertMany( [
{
_id: 1,
quote : "La suerte protege a los audaces."
},
{
_id: 2,
quote: "Nada hay más surrealista que la realidad."
},
{
_id: 3,
quote: "Es este un puñal que veo delante de mí?"
},
{
_id: 4,
quote: "Nunca dejes que la realidad te estropee una buena historia."
}
] )

A seguinte operação cria um índice de texto no campo quote e define o default_language para spanish:

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

O índice resultante suporta $text consultas no campo quote com regras de derivação de sufixo no idioma espanhol. Por exemplo, a seguinte query procura a palavra-chave punal no campo quote :

db.quotes.find(
{
$text: { $search: "punal" }
}
)

Saída:

[
{
_id: 3,
quote: "Es este un puñal que veo delante de mí?"
}
]

Embora o valor $search esteja definido como punal, a consulta retornará o documento que contém a palavra puñal, pois os índices de texto nãosão sensíveis a diacríticos.

O índice também ignora palavras irrelevantes específicas do idioma. Por exemplo, embora o documento com _id: 2 contenha a palavra hay, a seguinte consulta não retorna nenhum documento. hay é classificada como uma palavra final em espanhol, o que significa que não está incluída no índice de texto.

db.quotes.find(
{
$text: { $search: "hay" }
}
)

Voltar

Criar um índice de texto coringa

Nesta página