Pedro Bertoluchi

Vector store em Azure: AI Search vs Cosmos vs Postgres pgvector

Três opções viáveis na mesma cloud, três perfis de decisão distintos. Escolher errado custa orçamento, latência ou portabilidade que você não recupera depois.

8 min de leitura
Voltar para o blog

Azure AI Search, Cosmos DB com índice vetorial e Postgres Flexible Server com pgvector resolvem o mesmo problema de superfície: guardar embedding, recuperar vizinho mais próximo, devolver chunk. A diferença aparece na primeira consulta complexa, no primeiro filtro multi-tenant e no primeiro fechamento de fatura. Tratar os três como intercambiáveis é o erro mais caro que vejo em projeto de RAG corporativo.

AI Search ganha quando hybrid search e semantic ranker importam de verdade. Você combina BM25, vetor e reranking neural treinado pela Microsoft sem montar pipeline próprio, e isso encurta semanas de tuning. O preço aparece em dois lugares: semantic ranker existe a partir do tier Basic, mas S1 e acima é onde o custo em volume sai caro rápido, e a caixa é opaca. Quando o ranking erra, você ajusta peso e reza. Para corpus heterogêneo, multilíngue e com query em linguagem natural, vale o cheque.

Cosmos DB com vector index é a escolha óbvia quando o embedding mora junto do documento que já está lá. Latência single-digit ms, replicação multi-region nativa, e o mesmo container devolve metadata e vetor numa ida só. O ponto fraco é filtragem complexa: filtro por tenant, por permissão e por data ao mesmo tempo degrada a recall do índice DiskANN bem mais rápido que a documentação sugere. Para SaaS multi-tenant com filtros pesados, teste com seu shape de query antes de assinar.

Postgres com pgvector é a opção que mais respeito ganhou nos últimos doze meses. HNSW estável, ivfflat pra volume médio, e você operando o ranking com SQL que qualquer engenheiro do time lê. Custo previsível em Flexible Server, sem surpresa de unidade de busca, e o dia que sair do Azure o índice vai junto. O preço é trabalho: você monta hybrid search combinando ts_rank com cosine distance na mão, e até dez milhões de vetores roda confortável, acima disso começa a doer.

O critério que uso pra decidir tem cinco eixos. Volume abaixo de cinco milhões de chunk, pgvector resolve. Multi-tenant com filtro pesado, AI Search se o orçamento permite, pgvector com índice parcial por tenant se não. Dado já no Cosmos e latência multi-region inegociável, Cosmos vector. Necessidade de semantic ranking pronto sem time de ML, AI Search. Tolerância zero a lock-in ou plano de rodar híbrido com on-prem, pgvector sem hesitar.

A pergunta antes da arquitetura é mais honesta que a comparação de benchmark. Quanto custa errar essa escolha daqui a dezoito meses, quando o corpus dobrou e o time aprendeu o que realmente importa na query? AI Search te tira do problema técnico cobrando caro. Cosmos te dá performance de operação madura cobrando em flexibilidade de filtro. Postgres te dá controle cobrando em horas de engenharia. Não existe escolha neutra.

Tags

  • #azure
  • #rag
  • #ia-aplicada
  • #arquitetura

Vamos conversar sobre o seu próximo projeto.

Descreva o desafio em poucas linhas. Em até 1 dia útil eu retorno com uma avaliação técnica e os próximos passos.