lakebase_vector
Beta
Este recurso está em Beta. Os administradores do espaço de trabalho podem controlar o acesso a esse recurso na página Pré-visualizações . Consulte Gerenciar prévias do Databricks.
A extensão lakebase_vector adiciona busca vetorial de vizinhos mais próximos aproximados (ANN) ao Lakebase através do tipo de índice lakebase_ann. É um complemento direto para pgvector: os mesmos tipos de vetor, operadores de distância e sintaxe de consulta funcionam sem modificação.
Instalar
Primeiro, habilite a Pesquisa Lakebase nas configurações do seu projeto. Em seguida, instale a extensão:
CREATE EXTENSION IF NOT EXISTS lakebase_vector CASCADE;
A palavra-chave CASCADE instala automaticamente pgvector como uma dependência.
Início rápido
-- Create a table with a vector column
CREATE TABLE items (id BIGSERIAL PRIMARY KEY, embedding VECTOR(3));
-- Insert sample data
INSERT INTO items (embedding)
SELECT ARRAY[random(), random(), random()]::real[]
FROM generate_series(1, 1000);
-- Create a lakebase_ann index
CREATE INDEX ON items USING lakebase_ann (embedding vector_l2_ops);
-- Query using standard pgvector distance operators
SELECT * FROM items ORDER BY embedding <-> '[3,1,2]' LIMIT 5;
Configure o índice
Defina build_mode na criação do índice para controlar a relação entre precisão e velocidade:
standard(default): otimiza para recuperação. Ideal para a maioria das cargas de trabalho.fast: Constrói mais rapidamente com menor taxa de recuperação. Use esta opção quando o tempo de compilação for mais importante do que a qualidade da pesquisa.
CREATE INDEX ON items USING lakebase_ann (embedding vector_l2_ops) WITH (build_mode = 'fast');
Crie índices simultaneamente
Use CREATE INDEX CONCURRENTLY para construir sem bloquear a tabela e, em seguida, REINDEX CONCURRENTLY para reconstruir sem tempo de inatividade:
CREATE INDEX CONCURRENTLY items_embedding_ann ON items
USING lakebase_ann (embedding vector_l2_ops);
REINDEX INDEX CONCURRENTLY items_embedding_ann;
Ajuste a precisão da pesquisa
Antes de ajustar, chame lakebase_ann_index_info(index_name) para obter os valores de lists, default_probes e default_epsilon do índice.
Defina lakebase_ann.probes no momento da consulta para controlar a relação entre precisão e velocidade. Valores mais altos melhoram a recuperação de dados, mas tornam as consultas mais lentas.
SET lakebase_ann.probes TO '10';
SELECT * FROM items ORDER BY embedding <-> '[3,1,2]' LIMIT 10;
lakebase_ann.epsilon controla a margem de reclassificação. O valor default de 1.9 funciona bem para a maioria das cargas de trabalho.
SET lakebase_ann.epsilon TO '1.5';
Classes de operador
Métrica de distância | Classe de operador | Operador de consulta |
|---|---|---|
L2 (Euclidiano) |
|
|
Produto interno |
|
|
Semelhança de cosseno |
|
|
Referência de opções de índice
Opção | Tipo | Padrão | Descrição |
|---|---|---|---|
| string |
| Controla a relação entre precisão e velocidade no momento da criação do índice. |
Referência GUC
Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
| inteiro | (não definido) | Número de partições de FIV a serem analisadas no momento da consulta. Valores mais altos melhoram a recuperação da informação, mas à custa da velocidade da consulta. |
| Float |
| Margem de reclassificação. Intervalo válido: |
Funções de utilidade
Função | Devolve | Descrição |
|---|---|---|
| vazio | Carrega um índice na memória para eliminar a latência de inicialização a frio na primeira consulta. |
| TEXT | Retorna metadados de índice como texto, incluindo |