E quando isso acontece, ele simplesmente piora. Mais lento, menos relevante e com resultados estranhos. Já passou por isso? 👀

Eu achava que o problema era o embedding, o modelo ou até o índice (HNSW, etc.). Mas não é.

Depois de ler o artigo "Filtered Approximate Nearest Neighbor Search in Vector Databases" (2026), ficou claro:

"O problema não é IA. É banco de dados."

Quando você faz uma busca por similaridade combinada com filtro - como "documentos parecidos dos últimos 2 anos" ou "produtos similares com preço menor que 100" - você entra em um cenário muito mais difícil.

Isso acontece porque entra um fator crítico: quão restritivo é o filtro.

Se apenas 1% dos dados passam no filtro:

  • O algoritmo não encontra candidatos suficientes
  • O sistema começa a se perder
  • O resultado piora

A parte contra-intuitiva

👉 O melhor índice nem sempre é o melhor.

HNSW pode falhar, enquanto IVFFlat pode performar melhor - o oposto do que muita gente acredita.

O ponto principal é que nem todo sistema sabe lidar bem com isso.

O Milvus se destaca porque é adaptativo. Ele usa busca rápida quando pode, usa busca exata quando precisa e combina essas estratégias para manter qualidade mesmo com filtros restritivos. Em outras palavras, ele se ajusta à query.

Já o pgvector é simples e integra perfeitamente com SQL, o que é ótimo para muitos cenários. Porém, ele pode escolher estratégias erradas, não se adapta dinamicamente e tende a perder performance quando há filtros mais fortes.

Resumo brutalmente honesto

"Não importa só o índice. Importa quem decide como executar a busca."

Se o seu sistema piora quando você adiciona filtro, provavelmente você não tem um problema de embedding - você tem um problema de execução.

💬 Já viu isso acontecer na prática?