Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu Docs

Como indexar campos para preenchimento automático

Você pode usar o tipo autocomplete do MongoDB Search para indexar valores de texto em campos de string para preenchimento automático. Você pode fazer uma query de campos indexados como tipo autocomplete usando o operador de preenchimento automático.

Você também pode utilizar o tipo autocomplete para indexar:

Para considerações de mapeamento dinâmico, consulte Mapeamentos dinâmicos.

O tipo MongoDB Search autocomplete usa os seguintes parâmetros:

Opção
Tipo
necessidade
Descrição
Default

type

string

necessário

Etiqueta legível por humanos que identifica este tipo de campo. O valor deve ser string.

analyzer

string

opcional

Nome do analisador para utilizar com este mapeamento com preenchimento automático. Você pode usar qualquer analisador do MongoDB Search, exceto o lucene.kuromoji analisador de idioma e os seguintes tokenizadores e filtros de token do analisador personalizado :

lucene.standard

maxGrams

int

opcional

Número máximo de caracteres por sequência indexada. O valor limita o comprimento de caracteres de tokens indexados. Ao pesquisar termos maiores que o valor maxGrams, o MongoDB Search trunca os tokens para o comprimento maxGrams.

Para maxGrams melhores práticas, consulte maxGrams Configuração.

15

minGrams

int

opcional

Número mínimo de caracteres por sequência indexada. Recomendamos 4 para o valor mínimo. Um valor menor que 4 pode afetar o desempenho porque o tamanho do índice pode ficar muito grande. Recomendamos o valor padrão de 2 apenas para edgeGram.

2

tokenization

enum

opcional

Estratégia de tokenização para indexar o campo para o preenchimento automático. O valor pode ser um dos seguintes:

  • edgeGram - criar tokens indexáveis, chamados de grams, a partir de sequências de caracteres de comprimento variável a partir do lado esquerdo das palavras delimitadas pelo analisador usado com este mapeamento de preenchimento automático.

  • rightEdgeGram - criar tokens indexáveis, chamados de grams, a partir de sequências de caracteres com comprimentos variáveis começando no lado direito das palavras conforme delimitado pelo analyzer usado com este mapeamento com preenchimento automático.

  • nGram - criar tokens indexáveis, conhecidos como grams, deslizando uma janela de caracteres de comprimento variável sobre uma palavra. A Pesquisa do MongoDB cria mais tokens para nGram do que edgeGram ou rightEdgeGram. Portanto, o nGram consome mais espaço e tempo para indexar o campo. nGram é mais adequado para executar queries de idiomas com palavras compostas e longas ou idiomas que não usam espaços.

edgeGram, rightEdgeGram e nGram são aplicados no nível da letra. Por exemplo, considere a seguinte frase:

The quick brown fox jumps over the lazy dog.

Quando tokenizado com um valor minGrams de 2 e um valor maxGrams de 5, o MongoDB Search indexa a seguinte sequência de caracteres com base no valor tokenization que você escolhe.

th
the
the{SPACE}
the q
qu
qui
quic
uick
...

og
dog
{SPACE}dog
y dog
zy
azy
lazy
{SPACE}lazy
he
the
{SPACE}the
r the
er
ver
over
{SPACE}over
...

th
the
the{SPACE}
the q
he
he{SPACE}
he q
he qu
e{SPACE}
e q
e qu
e qui
{SPACE}q
{SPACE}qu
{SPACE}qui
{SPACE}quic
qu
qui
quic
quick
...

Para considerações de desempenho, consulte Desempenho de tokenização.

edgeGram

foldDiacritics

booleano

opcional

Sinalizador que indica se se deve executar normalizações, como incluir ou remover diacríticos do texto indexado. O valor pode ser um dos seguintes:

  • true - executar normalizações como ignorar sinais diacríticos no índice e no texto da query. Por exemplo, uma pesquisa por cafè retorna resultados com os caracteres cafè e cafe porque o MongoDB Search retorna resultados com e sem diacríticos.

  • false - não realize normalizações, como ignorar sinais diacríticos no índice e no texto da query. Portanto, o MongoDB Search retorna apenas resultados que correspondam às strings com ou sem diacríticos na query. Por exemplo, uma pesquisa por cafè retorna resultados somente com os caracteres cafè. Uma pesquisa por cafe retorna resultados somente com os caracteres cafe.

true

similarity.type

string

opcional

Nome do algoritmo de similaridade a ser usado com este mapeamento de strings ao pontuar com o operador autocomplete. O valor pode ser um dos seguintes: bm25, boolean ou stableTfl.

Para aprender mais sobre os algoritmos de similaridade disponíveis, consulte Detalhes da pontuação.

bm25

A opção maxGrams especifica o comprimento máximo das substrings geradas durante a indexação. Aumentar maxGrams melhora a correspondência para query mais longas, gerando mais substrings. Defini-lo além do que você precisa pode aumentar o tamanho do índice e afetar o desempenho da indexação.

Considere as seguintes melhores práticas ao configurar maxGrams:

  • Padrão para não mais de 15. Defina maxGrams para não mais de 15 sempre que possível para evitar o crescimento desnecessário do índice.

  • Alinhe com o comprimento da query. Defina maxGrams com base no comprimento típico das query do usuário, em vez de indexar para cenários de pior caso.

  • Evite a indexação excessiva. Se suas query forem mais curtas do que o valor maxGrams atual, você poderá estar em indexação mais dados do que o necessário.

  • Use an alternative for longer queries. If your queries regularly exceed 15 characters, use a custom analyzer for prefix, contains, and suffix patterns.

A indexação de um campo para preenchimento automático com uma estratégia de tokenização de edgeGram, rightEdgeGram ou nGram requer mais computação e armazenamento de índice do que a indexação de um campo de string.

Para a estratégia de tokenização especificada, o MongoDB Search concatena tokens sequenciais antes de emiti-los ("shingling"). O MongoDB Search emite tokens entre minGrams e maxGrams caracteres de comprimento:

  • Mantém tokens menores que minGrams.

  • Une tokens maiores que minGrams mas menores que maxGrams a tokens subsequentes para criar tokens até o número máximo especificado de caracteres de comprimento.

Os tipos de campo padrão que o MongoDB Search usa para mapeamentos dinâmicos não incluem o tipo autocomplete. O uso do tipo autocomplete em mapeamentos dinâmicos pode aumentar o tamanho do índice e o uso de recursos, e produzir resultados de pontuação inesperados. Use autocomplete em mapeamentos estáticos.

No entanto, se você precisar incluir autocomplete em mapeamentos dinâmicos, poderá adicioná-lo a uma definição typeSet personalizada. Para saber mais sobre autocomplete e configurações personalizadas de typeSet, consulte Tamanho e configuração do índice.

Se o seu conjunto de dados tiver muitos documentos ou uma ampla faixa de dados, a criação desse índice para o operador autocomplete pode levar algum tempo. Para reduzir o impacto em outros índices e queries enquanto a nova construção de índice, crie um índice separado com apenas o tipo autocomplete.

Para considerações de desempenho de índice, consulte Considerações de desempenho de índice.

Para saber mais sobre o operador autocomplete e ver queries de exemplo, consulte preenchimento automático.

For examples that demonstrate how to run case-insensitive, prefix, starts with, and contains queries using regex expressions, see Use $search Instead of $text or $regex.