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:

For dynamic mapping considerations, see Dynamic Mappings.

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.

For maxGrams best practices, see maxGrams Configuration.

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

For performance considerations, see Tokenization Performance.

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

The maxGrams option specifies the maximum length of substrings generated during indexing. Increasing maxGrams improves matching for longer queries by generating more substrings. Setting it beyond what you need can increase index size and affect indexing performance.

Consider the following best practices when you configure maxGrams:

  • Default to no more than 15. Set maxGrams to no more than 15 when possible to avoid unnecessary index growth.

  • Align with query length. Set maxGrams based on the typical length of user queries, rather than indexing for worst-case scenarios.

  • Avoid over-indexing. If your queries are shorter than your current maxGrams value, you may be indexing more data than necessary.

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

Indexing a field for autocomplete with an edgeGram, rightEdgeGram, or nGram tokenization strategy requires more computation and index storage than indexing a string field.

For the specified tokenization strategy, MongoDB Search concatenates sequential tokens before emitting them ("shingling"). MongoDB Search emits tokens between minGrams and maxGrams characters in length:

  • Mantém tokens menores que minGrams.

  • Joins tokens greater than minGrams but less than maxGrams to the next tokens to create tokens up to the specified maximum number of characters in length.

The default field types that MongoDB Search uses for dynamic mappings do not include the autocomplete type. Using the autocomplete type in dynamic mappings can increase index size and resource usage, and produce unexpected scoring results. Use autocomplete in static mappings.

However, if you need to include autocomplete in dynamic mappings, you can add it to a custom typeSet definition. To learn more about autocomplete and custom typeSet configurations, see Autocomplete.

If your dataset has many documents or a wide data range, building this index for the autocomplete operator can take some time. To reduce the impact on other indexes and queries while the new index builds, create a separate index with only the autocomplete type.

For index performance considerations, see Index Performance Considerations.

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

Para exemplos que demonstram como executar query que não diferenciam maiúsculas de minúsculas, prefixo, início com e contém usando expressões regex, consulte Usar pesquisa do MongoDB em vez de queries Regex.