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
/ /

Especifique a linguagem do índice de texto em implantações autogerenciadas

Observação

MongoDB Search oferece funcionalidades avançadas de pesquisa de texto completo, incluindo analisadores personalizados com filtros de token. Recomendamos usar índices de pesquisa MongoDB em vez de índices de texto.

O idioma de um índice de texto determina as regras usadas para analisar palavras derivadas e ignorar palavras vazias quando você executa queries com o operador $text.

Por padrão, se um índice de texto não tiver umidioma padrão , o índice usará o campo de documento language para determinar o idioma que será usado. Como resultado, os índices de texto não estão limitados a um único idioma porque o valor do campo language pode mudar entre documentos.

Você pode alterar o campo que o índice usa para determinar seu idioma. Isso é útil se os nomes dos seus campos não estiverem em inglês e seus documentos não tiverem um campo chamado language.

Para especificar o idioma do índice de texto em um campo diferente de language, inclua a opção language_override ao criar o índice:

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

O índice de texto utiliza o campo especificado na opção language_override para determinar o idioma a ser utilizado para o documento correspondente.

Para documentos que não contêm o campo especificado em language_override, o índice utiliza o inglês como seu idioma.

Crie a coleção quotes:

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

O idioma de cada inscrição é especificado no campo idioma .

Crie um índice de texto no campo quote . Especifique a opção language_override para fazer com que o índice de texto use o campo idioma para o idioma:

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

O índice suporta $text consultas no campo quote e utiliza regras de idioma baseadas no idioma especificado no campo idioma. Cada documento especifica um valor diferente no campo idioma, o que significa que cada documento é pesquisado com regras de linguagem diferentes.

Considere os seguintes exemplos:

A query a seguir pesquisa a string audazes:

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

Saída:

[
{ _id: 1, idioma: 'portuguese', quote: 'A sorte protege os audazes' }
]

A query anterior usa Português como idioma para preencher a query.

A query a seguir pesquisa a string hay:

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

A query anterior não retorna nenhum resultado, embora a string hay apareça no campo quote do documento _id: 2.

O documento _id: 2 especifica o idioma espanhol. hay é considerada uma palavra final em espanhol e, portanto, não está incluída no índice de texto.

Voltar

Criar um índice de texto para uma collection com várias linguagens

Nesta página