Melhorar o desempenho da pesquisa vetorial
Nesta página
Atlas Vector Search permite que você execute queries deANN em que o Atlas Search busca resultados semelhantes a um produto selecionado, Atlas Search por imagens e assim por diante. Para melhorar a velocidade de indexação e o desempenho da consulta, revise as seguintes práticas recomendadas.
Reduzir as dimensões do vetor
O Atlas Vector Search suporta até 4096
dimensões vetoriais inclusivas. No entanto, a indexação e as queries vetoriais do Atlas Search são computacionalmente intensivas, pois vetores maiores exigem mais comparações de pontos flutuantes. Portanto, sempre que possível, recomendamos reduzir o número de dimensões depois de garantir que você possa medir o impacto da alteração dos modelos de incorporação na precisão das suas queries vetoriais.
Evite indexar vetores ao executar queries
A incorporação de vetores consome recursos computacionais durante a indexação. Recomendamos evitar a indexação e a reindexação durante uma pesquisa vetorial. Se você decidir alterar o modelo de incorporação que produz os vetores para indexar, recomendamos reindexar os novos vetores em um novo índice em vez de atualizar o índice que está em uso atualmente.
Excluir campos vetoriais dos resultados
Você pode solicitar campos existentes dos documentos nos resultados e campos recém-calculados para serem retornados no estágio $project
. Para melhorar o desempenho da query, utilize o estágio $project
para selecionar criteriosamente os campos para retornar nos resultados, a menos que você precise de todos os campos nos resultados. Recomendamos excluir o campo de vetor no estágio $project
porque as incorporações de vetores podem ser grandes e afetar a latência da query ao retornar os resultados.
Tenha memória suficiente.
Pequenos Mundos Navegáveis Hierárquicos funciona eficientemente quando os dados vetoriais são mantidos na memória. Você deve garantir que os nós de dados tenham RAM suficiente para armazenar os dados vetoriais e índices. Recomendamos a implantação de nós de pesquisa separados para isolamento de carga de trabalho sem isolamento de dados, o que permite um uso mais eficiente da memória para casos de uso de pesquisa vetorial.
Aqueça o cache do sistema de arquivos
Quando você realiza uma pesquisa vetorial, suas queries inicialmente realizam buscas aleatórias no disco conforme você percorre o gráfico de Hierarchical Navigable Small World e os valores do vetor são lidos na memória. Isso causa uma latência muito alta para queries iniciais. A latência melhora quando Hierarchical Navigable Small Worlds traversal lê todos os vetores indexados na memória, o que permite que eles sejam acessados muito mais rapidamente para queries subsequentes.
No entanto, esse processo de aquecimento de cache deve ser repetido em gravações grandes ou quando o índice for recriado.