Especifique o idioma padrão para um índice de texto em implantações autogerenciadas
Nesta página
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.
Especifique o idioma padrão para um text
índice
O idioma padrão associado aos dados indexados determina as regras para analisar as raizes das palavras (ou seja, derivação) e ignora palavras vazias. 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 em sistemas autogerenciados para os idiomas disponíveis para default_language
.
O exemplo seguinte cria para a coleção quotes
um índice text
no campo content
e define o default_language
como spanish
:
db.quotes.createIndex( { content : "text" }, { default_language: "spanish" } )
Criar um text
índice para uma collection em vários idiomas
Especifique o idioma do índice dentro do documento
Se uma collection contiver documentos ou documentos incorporados 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 usará o idioma especificado para esse 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 em sistemas autogerenciados 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
utiliza esse idioma para analisar sementes de palavras e outras características linguísticos.
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 o documento incorporado.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.
Use qualquer campo para especificar o idioma de um documento
Para utilizar um campo com um nome diferente de language
, inclua a opção language_override
ao criar o índice.
Por exemplo, dê o seguinte comando para usar idioma
como 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" }