FTS do PostgreSQL: Aceleração de 50x com Otimizações Simples

2025-04-09
FTS do PostgreSQL: Aceleração de 50x com Otimizações Simples

Um benchmark recente da Neon mostrou a busca de texto completo (FTS) integrada do PostgreSQL ficando para trás do pg_search. No entanto, este artigo revela que o benchmark da Neon usou uma configuração FTS padrão não otimizada. Ao pré-calcular e armazenar a coluna `tsvector` e configurar índices GIN com `fastupdate=off`, um aumento de desempenho dramático é alcançado. Experimentos em um conjunto de dados de 10 milhões de linhas demonstraram uma melhoria de velocidade de ~50x, provando que o FTS padrão, devidamente otimizado, pode rivalizar com mecanismos de busca dedicados. O artigo também explora o VectorChord-BM25, uma extensão baseada em BM25 que se destaca em tarefas de classificação.

Leia mais
Desenvolvimento Busca de Texto Completo

VectorChord-BM25: Aprimorando a Busca de Texto Completo do PostgreSQL

2025-03-03
VectorChord-BM25: Aprimorando a Busca de Texto Completo do PostgreSQL

VectorChord-BM25 é uma nova extensão para PostgreSQL que utiliza o algoritmo BM25 e o algoritmo Block WeakAnd para melhorar significativamente a velocidade e a precisão da busca de texto completo do PostgreSQL. Simplifica o processo de busca e integra-se perfeitamente ao PostgreSQL. Em comparação com o ElasticSearch, o VectorChord-BM25 obtém um QPS (Queries Per Second) 3 vezes maior em média para consultas Top 1000 e pontuações NDCG@10 comparáveis ou até superiores, mas requer um alinhamento cuidadoso das estratégias de tokenização para uma comparação justa.

Leia mais
Desenvolvimento

Aprimorando a Busca Vetorial com Reordenação ColBERT no PostgreSQL

2025-01-24
Aprimorando a Busca Vetorial com Reordenação ColBERT no PostgreSQL

A busca vetorial tradicional usa embeddings de sentenças, mas pode perder detalhes granulares. O ColBERT supera isso representando o texto como multi-vetores de nível de token, retendo informações mais sutis e melhorando a precisão. No entanto, a interação de nível de token é computacionalmente cara. Este post demonstra a combinação da busca vetorial de nível de sentença com reordenação de nível de token ColBERT usando as extensões PostgreSQL VectorChord e pgvector. Esta abordagem realiza uma busca inicial rápida usando embeddings de sentença, seguida de reordenação com ColBERT para melhores resultados. Melhorias significativas foram observadas em vários conjuntos de dados BEIR.

Leia mais
Desenvolvimento busca vetorial