Dados dinâmicos
Um índice em produção raramente fica estático. Documentos novos chegam, documentos existentes são editados e documentos antigos expiram.
Três operações acontecem de forma contínua num índice vetorial:
- Inserção: um chunk novo é adicionado, com seu vetor e metadados.
- Atualização: o texto de um chunk mudou, o vetor é recalculado e a entrada existente é substituída.
- Remoção: o chunk deixa de ser válido e sai do índice, geralmente por política de retenção ou por exclusão do documento de origem.
A simulação abaixo gera eventos a cada 1,8 segundo para ilustrar o fluxo. A barra lateral mostra quantos chunks existem em cada categoria, e as barras horizontais variam conforme inserções e remoções acontecem.
- Ciência4
- História4
- Geografia4
- Cultura4
- Tecnologia4
- Economia4
- Aguardando primeiro evento…
Políticas de retenção
A política define quando um chunk deve sair do índice. Três padrões comuns:
- Janela deslizante por idade: chunks com data de criação anterior a um limite (90, 180, 365 dias) são removidos automaticamente.
- Sinal de domínio: o chunk sai quando o sistema externo marca o documento como obsoleto (um produto descontinuado, uma norma revogada).
- Reindexação incremental: quando um documento é editado, apenas os chunks afetados são recomputados, não o documento inteiro. Reduz custo de embedding.
Consistência durante a atualização
Durante uma atualização, consultas podem cair entre os dois estados do índice e recuperar uma versão antiga do chunk. Há duas abordagens para lidar com isso: atualização atômica por transação (suportada por bancos vetoriais integrados a SQL) e versão explícita do documento, em que consultas filtram pela versão ativa e versões antigas são coletadas depois.