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