vector e o operador vectorSearch estão disponíveis como recursos de prévia. O recurso e a documentação correspondente podem mudar a qualquer momento durante a prévia. Saiba mais em Recursos de prévia.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 estágio $vectorSearch, no seu $search pipeline de agregação para fazer uma query em 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 vector tipo
Configurar vector propriedades de campo do
Configurar vector propriedades de campo do
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. |
| 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 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 vector tipo de
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ção