Pular para o conteúdo principal

lakebase_vector

info

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:

SQL
CREATE EXTENSION IF NOT EXISTS lakebase_vector CASCADE;

A palavra-chave CASCADE instala automaticamente pgvector como uma dependência.

Início rápido

SQL
-- 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.
SQL
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:

SQL
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.

SQL
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.

SQL
SET lakebase_ann.epsilon TO '1.5';

Classes de operador

Métrica de distância

Classe de operador

Operador de consulta

L2 (Euclidiano)

vector_l2_ops

<->

Produto interno

vector_ip_ops

<#>

Semelhança de cosseno

vector_cosine_ops

<=>

Referência de opções de índice

Opção

Tipo

Padrão

Descrição

build_mode

string

'standard'

Controla a relação entre precisão e velocidade no momento da criação do índice. 'standard' otimiza para recall; 'fast' constrói mais rápido com recall menor.

Referência GUC

Parâmetro

Tipo

Padrão

Descrição

lakebase_ann.probes

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.

lakebase_ann.epsilon

Float

1.9

Margem de reclassificação. Intervalo válido: 0.0 a 4.0.

Funções de utilidade

Função

Devolve

Descrição

lakebase_ann_prewarm(regclass)

vazio

Carrega um índice na memória para eliminar a latência de inicialização a frio na primeira consulta.

lakebase_ann_index_info(regclass)

TEXT

Retorna metadados de índice como texto, incluindo lists, default_probes e default_epsilon.

Passos seguintes