# Estratégias de Indexação e Busca em Bancos Vetoriais
> [!NOTE] Estratégias de Indexação e Busca em Bancos Vetoriais
>
> Estas estratégias definem como o banco de dados navega pelo espaço vetorial para encontrar os vizinhos mais próximos (embeddings similares) de uma consulta. O trade-off principal é sempre entre Velocidade (Latência) vs. Precisão (Recall).
:: Referência :: [[Vozes da minha cabeça]]
# Notas
## 1. Flat Index (Força Bruta)
_Também conhecido como: Exact k-NN (k-Nearest Neighbors)_
- **O que é:** O algoritmo não cria atalhos. Ele calcula a distância (euclidiana, cosseno, etc.) entre o vetor da sua consulta e **absolutamente todos** os vetores armazenados no banco, um por um.
- **📚 A Analogia:** Você entra na biblioteca com uma página de um livro na mão. Você caminha por todas as estantes, pegando cada livro da biblioteca, abrindo página por página e comparando com a sua folha, até chegar ao fim do acervo.
- **✅ Vantagem:** **Precisão de 100% (Recall Perfeito)**. Como você comparou tudo, é matematicamente garantido que você encontre o resultado mais similar.
- **❌ Desvantagem:** **Extremamente lento (O(N))**. Se a biblioteca crescer para 1 bilhão de livros, essa busca se torna computacionalmente inviável para aplicações em tempo real.
## 2. IVF (Inverted File Index)
_Busca Aproximada (ANN - Approximate Nearest Neighbor)_
- **O que é:** O espaço vetorial é particionado em grupos (células de Voronoi ou clusters) baseados em similaridade _antes_ da busca. Quando você pesquisa, o algoritmo identifica qual grupo é mais próximo da sua consulta e busca apenas dentro dele (e talvez em alguns vizinhos), ignorando o resto.
- **📚 A Analogia:** A biblioteca organiza os livros por nichos específicos em salas separadas (ex: Sala de Terror Vitoriano, Sala de Receitas Veganas). Se sua página parece ser de "Terror", você vai direto para a sala de Terror e ignora todas as outras salas. Você só procura livro a livro dentro daquela sala específica.
- **✅ Vantagem:** **Velocidade e Eficiência**. Ignora grandes volumes de dados irrelevantes, tornando a busca escalável.
- **❌ Desvantagem:** **Perda de Precisão**. É uma busca aproximada. Se o livro foi mal classificado ou está na "fronteira" (ex: um livro de "Terror Cômico" colocado na sala de Comédia), você pode não encontrá-lo ao olhar apenas na sala de Terror.
## 3. HNSW (Hierarchical Navigable Small World)
_O padrão da indústria para Alta Performance_
- **O que é:** Cria uma estrutura de grafo multicamadas (como um _skip list_ multidimensional). É baseada na teoria dos "Mundos Pequenos", onde qualquer nó pode ser alcançado com poucos saltos.
- **📚 A Analogia:** Imagine navegar pela biblioteca usando o **Google Maps com Zoom**:
- **Camada Superior (Zoom Out):** Você vê as "Cidades" (Grandes categorias macro). Você dá um salto longo para a região correta.
- **Camada Média:** Você vê os "Bairros". Navega rapidamente para a vizinhança certa.
- **Camada Inferior (Zoom In):** Você vê as "Ruas e Casas" (os dados vizinhos exatos). Aqui você faz a comparação fina.
- **✅ Vantagem:** **Equilíbrio Ótimo**. É extremamente rápido e mantém uma precisão (recall) muito alta, mesmo com bilhões de vetores. É o algoritmo preferido para sistemas de IA Generativa (RAG).
- **❌ Desvantagem:** **Consumo de Memória (RAM)**. Manter essa estrutura de "mapa" com todas as conexões e camadas exige muito mais memória RAM do que o Flat ou IVF.
---
### 📊 Comparativo Rápido
| **Estratégia** | **Tipo de Busca** | **Velocidade** | **Precisão (Recall)** | **Consumo de Memória** | **Caso de Uso Ideal** |
| -------------- | ----------------- | -------------- | --------------------- | ---------------------- | -------------------------------------------------------------- |
| **Flat** | Exata | Baixa | 100% | Baixo | Bases pequenas ou quando a precisão máxima é obrigatória. |
| **IVF** | Aproximada | Alta | Média/Alta | Médio | Bases grandes onde a memória é limitada. |
| **HNSW** | Aproximada | Altíssima | Muito Alta | Alto | Bases gigantescas, RAG em tempo real e onde há RAM disponível. |