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 criar índice em campos vetoriais

Você pode usar o tipo vector para indexar embeddings de vetores. O campo vetorial deve conter um array de números dos seguintes tipos:

  • BSON int32, int64, ou double tipos de dados

  • BSON double Tipo de Dados

You can use the vectorSearch operator, similar to the $vectorSearch stage, in your $search aggregation pipeline to query fields indexed as the vector type.

Aplicam-se as seguintes limitações:

  • Você não pode ter índices em campos com arrays de objetos (tipo embeddedDocuments de MongoDB Search) como tipo vector.

  • Não é possível definir storedSource como true em definições de índice que contenham o tipo vector. Em vez disso, use include para especificar os campos a serem armazenados em mongot ou use exclude para excluir o campo do tipo vector do armazenamento.

  • You can't use the $vectorSearch stage to query fields indexed as the vector type.

  • Você pode indexar campos como o tipo vector no MongoDB Search Playground.

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

Opção
Tipo
necessidade
Descrição

type

vector

Obrigatório

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

numDimensions

Int

Obrigatório

Número de dimensões vetoriais que o MongoDB Search impõe no momento do índice e da query. Você pode definir este campo somente para campos do tipo vector. Você deve especificar um valor menor ou igual a 8192.

Para indexar vetores quantizados ou BinData, você pode especificar um dos seguintes valores:

  • 1 a 8192 para int8 vetores para ingestão.

  • Múltiplo de 8 para int1 vetores para ingestão.

  • 1 a 8192 para binData(float32) e array(float32) vetores para quantização escalar automática.

  • Múltiplo de 8 para binData(float32) e array(float32) vetores para quantização binária automática.

The embedding model you choose determines the number of dimensions in your vector embeddings, with some models having multiple options for how many dimensions are output. To learn more, see Choosing a Method to Create Embeddings.

similarity

String

Obrigatório

Função de similaridade vetorial a ser usada para procurar os K- vizinhos mais próximos. Você pode definir este campo somente para campos tipo vector.

Você pode especificar um dos seguintes valores:

  • euclidean - mede a distância entre as extremidades dos vetores.

  • cosine - mede a similaridade com base no ângulo entre os vetores.

  • dotProduct - mede a similaridade como cosine, mas leva em conta a magnitude do vetor.

To learn more, see About the Similarity Functions.

quantization

String

Opcional

Tipo de quantização vetorial automática para seus vetores. Use essa configuração somente se suas incorporações forem float ou double vetores.

Você pode especificar um dos seguintes valores:

  • none - Indica que não há quantização automática para as incorporações vetoriais. Use essa configuração se você tiver vetores pré-quantizados para ingestão. Se omitido, este é o valor padrão.

  • scalar - Indica a quantização escalar, que transforma valores em inteiros de 1 bytes.

  • binary - Indica a quantização binária, que transforma valores em um único bit. Para usar esse valor, numDimensions deve ser um múltiplo de 8.

    Se a precisão for crítica, selecione none ou scalar em vez de binary.

To learn more, see About Quantization.

indexingMethod

String

Opcional

Estrutura de índice para o campo de vetor. O valor pode ser:

  • hnsw - para índice baseado em grafo onde vetores semelhantes são conectados

  • flat - para plano, não grafo, índice

If omitted, defaults to hnsw. If you specify hnsw, MongoDB Vector Search performs ANN search over the Hierarchical Navigable Small Worlds graph and ENN search over full-fidelity vectors. You can also specify hnswOptions.

If you specify flat, MongoDB Vector Search performs a full scan over full-fidelity or quantized vectors. During an ANN search, MongoDB Vector Search ignores the settings for numCandidates. For ENN search, MongoDB Vector Search performs a full scan over full-fidelity vectors.

hnswOptions

Objeto

Opcional

Parameters to use for Hierarchical Navigable Small Worlds graph construction. If omitted, uses the default values for the maxEdges and numEdgeCandidates parameters.

IMPORTANTE: isso está disponível como um recurso de prévia. A modificação dos valores padrão pode ter impacto adverso no índice de pesquisa e nas queries do MongoDB Search.

hnswOptions.
maxEdges

Int

Opcional

Maximum number of edges (or connections) that a node can have in the Hierarchical Navigable Small Worlds graph. Value can be between 16 and 64, both inclusive. If omitted, defaults to 16. For example, for a value of 16, each node can have a maximum of sixteen outgoing edges at each layer of the Hierarchical Navigable Small Worlds graph.

A higher number improves :recall (accuracy of search results) because the graph is better connected. However, this also increases query and indexing time by increasing the number of neighbors to evaluate per graph node, and requires more memory to store the additional nodes for each connection in the Hierarchical Navigable Small Worlds graph.

hnswOptions.
numEdgeCandidates

Int

Opcional

Analogamente a numCandidates no momento da query, este parâmetro controla o número máximo de nós a serem avaliados para encontrar os vizinhos mais próximos para se conectar a um novo nó. O valor pode estar entre 100 e 3200, ambos incluídos. Se omitido, o padrão é 100.

Um número mais alto fornece um grafo com conexões de alta qualidade, o que pode melhorar a qualidade da pesquisa (recall), mas também pode aumentar a latência da query.

The following index definition example uses the sample_mflix.embedded_movies collection in the sample data. After you load the collection, you can use the following example to index the plot_embedding_voyage_3_large field as the vector type for running queries using the vectorSearch (MongoDB Search Operator). For a sample query to run against this index, see Examples.

Esta definição de índice indexa automaticamente todos os campos indexáveis dinamicamente usando o padrão typeSet e também indexa o campo plot_embedding_voyage_3_large como tipo vector com as seguintes configurações:

  • 2048 número de dimensões

  • dotProduct função de similaridade

  • scalar quantização

  • hnsw método de indexação (padrão)