Pular para o conteúdo principal

Pesquisa Lakebase

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.

O Lakebase Search adiciona pesquisa híbrida de vetores e palavras-chave a projetos de autoscale do Lakebase. Habilite-o uma vez nas configurações do seu projeto e, em seguida, instale as extensões Postgres lakebase_vector e lakebase_text para começar a criar recursos de pesquisa.

Como funciona

A busca do Lakebase é construída sobre duas extensões do Postgres:

  • O lakebase_vector adiciona busca vetorial de vizinho mais próximo aproximada (ANN) via o tipo de índice lakebase_ann. É um complemento imediato para pgvector: os mesmos tipos de vetor, operadores de distância e sintaxe de consulta funcionam sem modificação. Internamente, ele usa o particionamento IVF com quantização RaBitQ, que suporta índices de mais de 1 bilhão de vetores em um único índice e é construído até 50 a 100 vezes mais rápido que HNSW. Os índices são apoiados por armazenamento e sobrevivem à escala para zero sem pré-aquecimento.

  • lakebase_text adiciona pesquisa de texto completo BM25 através do tipo de índice lakebase_bm25. É compatível com os tipos padrão tsvector e operadores de consulta do PostgreSQL. A classificação BM25 considera simultaneamente a frequência de termos, o tamanho do documento e as estatísticas de todo o corpus. Top-K pushdown (Block-Max WAND) recupera apenas os K resultados mais relevantes do índice, em vez de pontuar cada correspondência.

Requisitos

  • Postgres 16 ou posterior
  • Habilitar a pesquisa Lakebase em um projeto é irreversível
  1. Nas configurações do seu projeto Lakebase, clique em Lakebase na navegação à esquerda.
  2. Clique em Ativar pesquisa no Lakebase .
atenção

Habilitando o Lakebase Search:

  • Reinicia todos os computes no seu projeto, descartando quaisquer conexões ativas
  • Torna as extensões lakebase_vector e lakebase_text disponíveis para instalação
  • Não pode ser desativado uma vez habilitado

Instalar extensões

Após habilitar o Lakebase Search, instale as extensões em seu banco de dados:

SQL
-- Required: vector search (CASCADE installs pgvector as a dependency)
CREATE EXTENSION IF NOT EXISTS lakebase_vector CASCADE;

-- Required: BM25 full-text search
CREATE EXTENSION IF NOT EXISTS lakebase_text;

Começar

O exemplo a seguir cria uma tabela documents com uma coluna vetorial e uma coluna de pesquisa de texto completo, e depois executa consultas vetoriais e de palavra-chave:

SQL
-- Create a table with a vector column and a tsvector column
CREATE TABLE documents (
id SERIAL PRIMARY KEY,
title TEXT NOT NULL,
body TEXT NOT NULL,
embedding VECTOR(3),
body_tsv TSVECTOR
);

-- Create a vector search index
CREATE INDEX ON documents USING lakebase_ann (embedding vector_cosine_ops);

-- Insert sample data and populate the tsvector column
INSERT INTO documents (title, body, embedding, body_tsv) VALUES
('Postgres overview', 'Postgres is an open-source relational database.', '[0.1, 0.2, 0.3]', to_tsvector('english', 'Postgres is an open-source relational database.')),
('Vector search guide', 'Vector search finds semantically similar results.', '[0.4, 0.5, 0.6]', to_tsvector('english', 'Vector search finds semantically similar results.')),
('Full-text search', 'BM25 ranking improves keyword search relevance.', '[0.7, 0.8, 0.9]', to_tsvector('english', 'BM25 ranking improves keyword search relevance.'));

-- Build the BM25 index after inserting data
-- BM25 computes corpus statistics at build time, not incrementally
CREATE INDEX documents_body_bm25 ON documents USING lakebase_bm25 (body_tsv);

-- Vector similarity search
SELECT id, title
FROM documents
ORDER BY embedding <=> '[0.1, 0.2, 0.3]'
LIMIT 5;

-- BM25 keyword search (lower score = more relevant)
SELECT id, title,
body_tsv <@> to_bm25query(to_tsvector('english', 'database'), 'documents_body_bm25') AS score
FROM documents
ORDER BY score
LIMIT 5;

Extensões

Extensão

Propósito

Tipo de índice

lakebase_vector

Pesquisa vetorial rede neurais artificiais (ANN), compatível com pgvector

lakebase_ann

lakebase_text

Pesquisa de texto completo BM25, compatível com FTS

lakebase_bm25