Pesquisa Lakebase
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ãotsvectore 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
Habilitar o Lakebase Search
- Nas configurações do seu projeto Lakebase, clique em Lakebase na navegação à esquerda.
- Clique em Ativar pesquisa no Lakebase .
Habilitando o Lakebase Search:
- Reinicia todos os computes no seu projeto, descartando quaisquer conexões ativas
- Torna as extensões
lakebase_vectorelakebase_textdisponí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:
-- 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:
-- 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 |
|---|---|---|
Pesquisa vetorial rede neurais artificiais (ANN), compatível com pgvector |
| |
Pesquisa de texto completo BM25, compatível com FTS |
|