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, oudoubletipos de dadosBSON
doubleTipo de Dados
Você pode usar o operador vectorSearch, semelhante ao estágio $vectorSearch, em seu pipeline de agregação $search para consultar campos indexados como o tipo vector.
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
$vectorSearchpara consultar campos indexados como o tipovector.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 embedding escolhido determina o número de dimensões em seus embeddings vetoriais, com alguns modelos tendo múltiplas opções para quantas dimensões são geradas. Para aprender mais, consulte Escolher um método para criar embeddings. |
| 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 About Quantization. |
| 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. |
| 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 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. |
| 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 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 executar com base nesse índice, consulte exemplo.
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)