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)
-
Figma Data Model: [Link|https://www.figma.com/design/FiL1iRG6RPjuNCgVzgGqvaZ3/🟣-Carol-3.0?node-id=38862-25488]
-
Figma Data Model (2): [Link|https://www.figma.com/design/FiL1iRG6RPjuNCgVzgGqvaZ3/🟣-Carol-3.0?node-id=38895-10733]
-
Figma Staging: [Link|https://www.figma.com/design/FiL1iRG6RPjuNCgVzgGqvaZ3/🟣-Carol-3.0?node-id=37891-81411]
-
Doc BigQuery: [Link|https://docs.cloud.google.com/bigquery/docs/vector-index#choose-vector-index-type%5D
-
Doc PostgreSQL: [Link|https://www.postgresql.org/docs/current/sql-createindex.html]
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)