Tipo Vector e Non Vector: suporte a criação de indices para otimização de buscas (BE)

Description

01 - OBJETIVO (solução proposta)

Permitir a criação de índices para atributos, cobrindo PostgreSQL (Baixa Latência) e BigQuery — incluindo índices vector e non-vector.

Contexto:
O fluxo deve cobrir índices em dois ambientes:

  • PostgreSQL (Baixa Latência): índices vector e non-vector

  • BigQuery: índices vector

Fluxo Geral:

  • Usuário acessa configuração de índices (Data Model ou Staging Area)

  • Usuário seleciona o ambiente (BigQuery ou PostgreSQL)

  • Usuário seleciona tipo de índice disponível

  • Usuário configura parâmetros obrigatórios

  • Sistema valida e cria o índice

BigQuery (Vector):

  • TreeAH: Distance type, Leaf_node_embedding_count, Normalization type

  • IVF: Distance type, Num_list

PostgreSQL (Baixa Latência):

  • Non-Vector: B-tree, Hash, GIN, GiST, SP-GiST, BRIN (sem parâmetros adicionais)

  • IVFFlat: Distance type, Num List

  • HNSW: Distance type, M, ef_construction


02 - ASSETS (links e arquivos relevantes)


03 - CRITÉRIOS DE ACEITE

Geral

  • Implementação cobrindo fluxo Staging Area e Data Model (conforme Figma)

  • Mensagem orientando criação de índices vetoriais implementada no BigQuery

  • Mensagem orientando criação de índices implementada no PostgreSQL (Baixa Latência)

  • Links para documentação adicionados de forma discreta em todas as UIs

BigQuery - TreeAH

  • Parâmetro "Distance type" implementado (Euclidean, Cosine, Dot Product)

  • Parâmetro "Leaf_node_embedding_count" implementado

  • Parâmetro "Normalization type" implementado (L2, L1, None)

BigQuery - IVF

  • Parâmetro "Distance type" implementado (Euclidean, Cosine, Dot Product)

  • Parâmetro "Num List" implementado (Integer)

PostgreSQL - Índices Non Vector

  • B-tree implementado

  • Hash implementado

  • GIN implementado

  • GiST implementado

  • SP-GiST implementado

  • BRIN implementado

PostgreSQL - IVFFlat

  • Parâmetro "Distance type" implementado (L2 distance, Inner product, Cosine distance, Hamming distance)

  • Parâmetro "Num List" implementado (Integer)

  • Correção do spelling "VFFLAT" para "IVFFlat" aplicada

PostgreSQL - HNSW

  • Parâmetro "Distance type" implementado (L2, Inner product, Cosine, L1, Hamming, Jaccard)

  • Parâmetro "M" implementado (Integer, valores típicos: 16-64)

  • Parâmetro "ef_construction" implementado (Integer, valores típicos: 100-400)