FTS de PostgreSQL: Aceleración 50x con Optimizaciones Simples

2025-04-09
FTS de PostgreSQL: Aceleración 50x con Optimizaciones Simples

Un benchmark reciente de Neon mostró que la búsqueda de texto completo (FTS) integrada de PostgreSQL se quedaba atrás de pg_search. Sin embargo, este artículo revela que el benchmark de Neon usó una configuración FTS estándar no optimizada. Al precalcular y almacenar la columna `tsvector` y configurar índices GIN con `fastupdate=off`, se logra un aumento de rendimiento dramático. Experimentos en un conjunto de datos de 10 millones de filas demostraron una mejora de velocidad de ~50x, lo que prueba que el FTS estándar, debidamente optimizado, puede competir con motores de búsqueda dedicados. El artículo también explora VectorChord-BM25, una extensión basada en BM25 que sobresale en tareas de clasificación.

Leer más

VectorChord-BM25: Potenciando la Búsqueda de Texto Completo de PostgreSQL

2025-03-03
VectorChord-BM25: Potenciando la Búsqueda de Texto Completo de PostgreSQL

VectorChord-BM25 es una nueva extensión de PostgreSQL que aprovecha el algoritmo BM25 y el algoritmo Block WeakAnd para mejorar significativamente la velocidad y la precisión de la búsqueda de texto completo de PostgreSQL. Simplifica el proceso de búsqueda y se integra perfectamente con PostgreSQL. En comparación con ElasticSearch, VectorChord-BM25 logra un QPS (Consultas por Segundo) 3 veces mayor en promedio para consultas Top 1000 y puntuaciones NDCG@10 comparables o incluso superiores, pero requiere una alineación cuidadosa de las estrategias de tokenización para una comparación justa.

Leer más
Desarrollo

Potenciando la búsqueda vectorial con reordenamiento ColBERT en PostgreSQL

2025-01-24
Potenciando la búsqueda vectorial con reordenamiento ColBERT en PostgreSQL

La búsqueda vectorial tradicional se basa en incrustaciones de oraciones, lo que puede provocar la pérdida de detalles granulares. ColBERT supera esto representando el texto como multi-vectores a nivel de token, reteniendo información matizada y mejorando la precisión. Sin embargo, la interacción a nivel de token es computacionalmente costosa. Esta entrada de blog muestra cómo combinar la búsqueda vectorial a nivel de oración con el reordenamiento a nivel de token de ColBERT utilizando las extensiones de PostgreSQL VectorChord y pgvector. Este enfoque realiza una búsqueda inicial rápida utilizando incrustaciones de oraciones, seguida de un reordenamiento con ColBERT para obtener mejores resultados. Se observaron mejoras significativas en varios conjuntos de datos BEIR.

Leer más
Desarrollo búsqueda vectorial