MongoDB.local SF, Jan 15: See the speaker lineup & ship your AI vision faster. Use WEB50 to save 50%
Find out more >
Menu Docs
Página inicial do Docs
/ /

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

O idioma de um índice de texto determina as regras usadas para analisar palavras derivadas e ignorar palavras vazias ao executar queries de pesquisa de texto.

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 usará. 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 queries de pesquisa de texto 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