Menu Docs
Página inicial do Docs
/ /

Como indexar campos para preenchimento automático

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

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

  • Campos cujo valor é um array de strings. Para saber mais, consulte Como indexar os elementos de um array.

  • Campos de string dentro de uma array de documentos indexados como o tipo embeddedDocuments.

Dica

Se você tiver um grande número de documentos e uma variedade de dados para os quais deseja executar queries do MongoDB Search usando o operador de preenchimento automático, pode demorar algum tempo para criar esse índice. Como alternativa, você pode criar um índice separado apenas com o tipo autocomplete para reduzir o impacto em outros índices e queries enquanto o índice é criado.

Para saber mais, consulte Considerações sobre o desempenho do índice de pesquisa do MongoDB.

autocomplete o tipo não está incluído no mapeamento dinâmico por padrão. Para indexar campos como autocomplete tipo, você pode utilizar mapeamentos estáticos ou configurar um typeSet para incluir autocomplete no mapeamento dinâmico.

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.

Observação

Recomendamos definir o valor da maxGrams para ser menor ou igual a 15 para otimizar o desempenho. Um valor mais alto aumenta o tamanho do índice e pode impacto o desempenho. Se você precisar de mais de 15 caracteres para o preenchimento automático, recomendamos configurar o analisador personalizado para evitar o truncamento das queries.

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

Indexar um campo para preenchimento automático com uma estratégia de tokenização de edgeGram, rightEdgeGram ou nGram é computacionalmente mais caro do que indexar um campo de string. O índice ocupa mais espaço do que um índice com campos de string regulares.

Para a estratégia de tokenização especificada, a MongoDB Search aplica o seguinte processo para concatenar tokens sequenciais antes de emiti-los. Esse processo às vezes é chamado de "shingling". A Pesquisa do MongoDB emite tokens entre minGrams e maxGrams caracteres:

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

edgeGram

foldDiacritics

booleano

opcional

Flag que indica se normalizações devem ser executadas, como incluir ou remover sinais 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

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

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

Voltar

array

Nesta página