Você pode usar o tipo vector para indexar embeddings de vetores. O campo vetorial deve conter uma array de números dos seguintes tipos:
BSON
int32,int64, oudoubletipos de dadosBSON
doubleTipo de Dados
Você pode usar o operador vectorSearch, semelhante ao $vectorSearch estágio, em seu agregação pipeline para consultar campos indexados como $search o vector tipo.
vector Limitações de tipo
Aplicam-se as seguintes limitações:
Você não pode ter índices em campos com arrays de objetos (tipo
embeddedDocumentsde MongoDB Search) como tipovector.Não é possível definir storedSource como
trueem definições de índice que contenham o tipovector. Em vez disso, useincludepara especificar os campos a serem armazenados emmongotou useexcludepara excluir o campo do tipovectordo armazenamento.Você não pode usar o estágio para consultar campos indexados como
$vectorSearchovectortipo.Você pode indexar campos como o tipo
vectorno MongoDB Search Playground.
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 da query. Você pode definir este campo somente para campos do 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. |
| String | Opcional | Estrutura de índice para o campo de vetor. O valor pode ser:
Se omitido, o padrão é Se você especificar |
| Objeto | Opcional | Parâmetros a serem usados para a construção do grafo de Hierarchical Navigable Small Worlds. Se omitido, utiliza os valores padrão para os parâmetros 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 | 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 mais alto melhora o recall (precisão dos resultados da pesquisa) porque o grafo está mais bem conectado. No entanto, isso também aumenta o tempo de query e indexação ao aumentar o número de vizinhos a serem avaliados por nó de grafo e exige mais memória para armazenar os nós adicionais para cada conexão no grafo Hierarchical Navigable Small Worlds. |
hnswOptions.numEdgeCandidates | Int | Opcional | Analogamente a 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. |
Experimente um exemplo para o tipo de vector
O exemplo de definição de índice a seguir usa a coleção sample_mflix.embedded_movies nos dados de amostra. Depois de carregar a coleção, você pode usar o exemplo a seguir para indexar o campo plot_embedding_voyage_3_large como o tipo vector para executar queries usando o vectorSearch (MongoDB Search Operador). Para que uma query de amostra seja executada com base nesse índice, consulte Exemplos.
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:
2048número de dimensõesdotProductfunção de similaridadescalarquantizaçãohnswmétodo de indexação (padrão)