vector tipo de campo e vectorSearch o operador estão disponíveis como recursos de visualização. O recurso e a documentação correspondente podem mudar a qualquer momento durante o período de Pré-visualização. Para saber mais, consulte Recursos de visualização do.Você pode usar o vector tipo para indexar embeddings de vetores. O campo vetorial deve conter uma array de números dos seguintes tipos:
BSON
int32,int64oudoubletipos de dadosBSON
doubleTipo de Dados
Você pode usar o operador vectorSearch, semelhante ao estágio$vectorSearch, em seu pipeline de agregação do$searchpara consultar campos indexados como o tipo vector.
vector Limitações de tipo
Aplicam-se as seguintes limitações:
Você não pode indexar campos com arrays de objetos (tipo MongoDB Search
embeddedDocuments) como tipovector.Você não pode definir storedSource como
trueem definições de índice que contenhamvectoro tipo. Em vez disso, utilizeincludepara especificar os campos para armazenar emmongotou utilizeexcludepara excluir ovectorcampo do tipo do armazenamento.Você não pode usar o estágio para consultar campos indexados como
$vectorSearchovectortipo .
Definir o índice para o tipo vector
Configurar propriedades de campo do vector
Configurar propriedades de campo do vector
O tipo MongoDB Search vector usa os seguintes parâmetros:
Opção | Tipo | necessidade | Descrição |
|---|---|---|---|
|
| Obrigatório | Etiqueta legível por humanos que identifica este tipo de campo. O valor deve ser |
| Int | Obrigatório | Número de dimensões vetoriais que o MongoDB Search impõe no momento do índice e no momento da consulta. Você pode definir este campo somente para campos tipo Para indexar vetores quantizados ou BinData, você pode especificar um dos seguintes valores:
O modelo de incorporação escolhido determina o número de dimensões em suas incorporações vetoriais, com alguns modelos tendo múltiplas opções para quantas dimensões são geradas. Para saber mais, consulte Escolher um método para criar incorporações. |
| 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 Você pode especificar um dos seguintes valores:
Para saber mais, consulte Sobre as funções de similaridade. |
| String | Opcional | Tipo de quantização vetorial automática para seus vetores. Use essa configuração somente se suas incorporações forem Você pode especificar um dos seguintes valores:
Para saber mais, consulte Quantização vetorial. |
| Objeto | Opcional | Parâmetros a serem usados na construção do grafo Hierarchical Navigable Small Worlds. Se omitido, usa os valores padrão para os parâmetros IMPORTANTE: isso está disponível como um recurso de visualização. Modificar os valores padrão pode impacto negativamente o índice e as consultas do MongoDB Search. |
hnswOptions.maxEdges | Int | Opcional | Número máximo de arestas (ou conexões) que um nó pode ter no grafo Hierarchical Navigable Small Worlds. O valor pode estar entre Um número maior melhora a recuperação (precisão dos resultados da pesquisa) porque o gráfico está mais bem conectado. No entanto, isso também aumenta o tempo de query e indexação, aumentando o número de vizinhos para avaliar por nó do gráfico e requer mais memória para armazenar os nós adicionais para cada conexão no gráfico Hierarchical Navigable Small Worlds. |
hnswOptions.numEdgeCandidates | Int | Opcional | Analogamente a Um número maior 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. |
Experimente um exemplo para o tipo vector
O exemplo de definição de índice abaixo utiliza a sample_mflix.embedded_movies collection nos dados de amostra. Depois de carregar a coleção, você pode usar o exemplo a seguir para indexar o plot_embedding_voyage_3_large campo como o vector tipo para executar queries usando o vectorSearch (operador de pesquisa do MongoDB). Para que uma consulta de exemplo seja executada em relação a esse índice, consulte Exemplos.
Essa definição de índice indexa automaticamente todos os campos indexáveis dinamicamente usando o padrão typeSet e também indexa o plot_embedding_voyage_3_large campo como vector tipo com as seguintes configurações:
2048número de dimensõesdotProductfunção de similaridadescalarquantização