XEYE frente a pgvector: cuál elegir
pgvector es una extensión de PostgreSQL que guarda vectores y busca los más cercanos. No genera embeddings ni combina señales: eso lo programas tú. Si tus datos ya están en Postgres y tienes un desarrollador que escriba ese proceso, pgvector es probablemente mejor opción que cualquier API externa. XEYE encaja cuando no hay Postgres, o cuando no quieres construir ni mantener esa pieza.
Por Joan Martorell
¿En qué se diferencian?
| XEYE | pgvector | |
|---|---|---|
| Qué es | API alojada de búsqueda híbrida. | Extensión de PostgreSQL para búsqueda por similitud de vectores. |
| Embeddings | Los calcula XEYE al entrenar la lista y en cada consulta. | Los generas tú, con el modelo o el servicio que elijas, para cada elemento y para cada consulta. |
| Búsqueda híbrida | En cada consulta, sin configurar nada. | La escribes tú, combinando pgvector con la búsqueda de texto de Postgres o con pg_trgm. |
| Índices | Los gestiona el servicio. | HNSW e IVFFlat, además de búsqueda exacta sin índice. |
| Dónde están los datos | En el servicio. Se cargan desde la consola. | En tu base de datos: sin sincronización, con transacciones, uniones y filtros SQL. |
| Filtros | No. | Sí, con SQL. |
| Precio | 0,001 € por búsqueda, sin cuota. | Gratis y de código abierto. Pagas tu base de datos y la generación de embeddings. |
| Operación | Ninguna. | La de tu Postgres. Está disponible en Supabase, Neon, Amazon RDS, Cloud SQL y Azure. |
¿Cuándo es mejor elegir pgvector?
- Ya usas PostgreSQL y los datos viven ahí: no hay nada que sincronizar.
- Quieres control total del modelo, del ranking y de dónde están los datos.
- Tienes un desarrollador cómodo escribiendo el proceso de embeddings y la consulta híbrida en SQL.
- No quieres un coste por búsqueda ni depender de otro proveedor.
¿Cuándo encaja XEYE?
- No tienes Postgres, o no tienes un desarrollador de backend: una tienda sin código, un sitio estático o una sección de preguntas frecuentes.
- No quieres elegir un modelo, recalcular embeddings cuando cambia un elemento ni ajustar la mezcla de coincidencia difusa y semántica.
- El volumen es lo bastante pequeño para que el pago por uso cueste menos que el tiempo de ingeniería.
¿Qué tengo que construir con pgvector?
La búsqueda en sí es una consulta corta. Esta devuelve los diez elementos más cercanos a un vector:
-- The ten elements closest in meaning to the query.
-- $1 is the query embedding: you compute it with the same model as the catalogue.
SELECT id, text, 1 - (embedding <=> $1) AS similarity
FROM elements
ORDER BY embedding <=> $1
LIMIT 10;
Lo que rodea a esa consulta es el trabajo real:
- Elegir un modelo de embeddings y dónde ejecutarlo: un servicio de pago por uso o un modelo propio.
- Calcular el vector de cada elemento y recalcularlo cuando su texto cambia.
- Calcular el vector de cada consulta con el mismo modelo, antes de ejecutar el SQL.
- Añadir la parte de texto: búsqueda de texto completo o
pg_trgmpara erratas, y una forma de fusionar los dos resultados. - Ajustar y vigilar los índices a medida que crecen los datos.
Ninguno de estos pasos es difícil para un equipo con experiencia, y el resultado es tuyo. Para un equipo sin ella, es una pieza más que mantener.
¿Qué le falta a XEYE?
Tus datos tienen que copiarse al servicio y mantenerse al día a mano. No hay filtros ni uniones con el resto de tus tablas, no eliges la fórmula de ranking y no hay acuerdo de nivel de servicio. Si ya tienes los datos en Postgres, esa copia es justo lo que pgvector te evita.
Fuentes
- Repositorio de pgvector: tipos, índices, operadores y búsqueda híbrida.
- Módulo pg_trgm, en la documentación de PostgreSQL.
Preguntas frecuentes
¿pgvector genera los embeddings?
- No. Guarda vectores y busca los más cercanos. Los vectores los calculas tú con un modelo o un servicio externo, tanto para los elementos como para cada consulta.
¿pgvector hace búsqueda híbrida?
- No por sí solo. Su documentación indica que se usa junto con la búsqueda de texto completo de Postgres, y la fusión de resultados se hace en tu consulta o en tu aplicación.
¿Puedo empezar con XEYE y pasar a pgvector más adelante?
- Sí. Lo que cargas en XEYE son textos con una descripción y unos parámetros, que sigues teniendo en tu origen. Los embeddings tendrías que calcularlos de nuevo con el modelo que elijas.
Pruébalo con tus propios datos
Crea una cuenta, sube una lista y haz tu primera búsqueda en unos cinco minutos. Empiezas con 5 € de crédito, sin tarjeta.
Sigue leyendo
- XEYE frente a Elasticsearch: cuál elegirElasticsearch es un motor de búsqueda que despliegas y configuras tú. XEYE es una API alojada de búsqueda híbrida. Cuándo compensa cada opción y por qué.
- XEYE frente a Algolia: cuál elegirAlgolia es un buscador completo con interfaz, facetas y sincronización. XEYE es una API pequeña de búsqueda híbrida con pago por uso. Cuándo conviene cada uno.
- Búsqueda semántica frente a búsqueda por palabras claveLa búsqueda por palabras clave compara letras y la semántica compara significados. Cuándo acierta cada una, qué es la búsqueda híbrida y datos medidos.