Buscador modular: sigo enfrentando retos

Relato sobre construir un buscador desde cero: crawler en Python, parser y indexador en Go, API en FastAPI y frontend en Vue. Lecciones sobre robots.txt y rendimiento.

15 sept 2025 • 4 min read • Q2BSTUDIO Team

Inteligencia-Artificial-

Tuve la idea dolorosa de construir un buscador desde cero y pensé que sería sencillo. La realidad fue otra: es muy difícil. Sigo inmerso en el proceso y quiero compartir los bloqueos, los errores y los dolores de cabeza de ensamblar un crawler, un parser, un indexador y un frontend que más o menos funcionen como Google, pero mucho peor.

La arquitectura que creí sensata era modular para que cada componente funcionara de forma independiente y pudiera escalar por separado. La estructura aproximada fue: un crawler en Python que rascara páginas web, un parser en Go para extraer HTML y texto útil, un indexador en Go para construir el índice de búsqueda, una API de búsqueda en Python para gestionar consultas, un frontend en Vue.js para que los usuarios escribieran sus consultas y PostgreSQL para almacenar metadatos. Sonó limpio hasta que la práctica golpeó fuerte.

El crawler en Python fue la primera sorpresa. Pensé que con requests y BeautifulSoup bastaría. No fue así. Manejar robots.txt es más enrevesado de lo esperado, encontré bucles infinitos rastreando el mismo sitio una y otra vez, algunas páginas bloquean crawlers a menos que falsees cabeceras y la limitación de tasa puede derribar tu red local si te pasas. El crawling expone multitud de casos borde; ahora entiendo por qué grandes empresas invierten millones en mantener sus crawlers.

Elegí Go para el parsing buscando mejor rendimiento y concurrencia, pero resultó más trabajoso de lo previsto. Las bibliotecas de HTML en Go son básicas y, aunque rápidas, hacen que lidiar con HTML roto sea una pesadilla. Además, cambiar constantemente entre Python y Go añade fricción al desarrollo.

El indexado en Go fue otra fuente de complicaciones. La tokenización en múltiples idiomas obliga a decisiones tempranas: ¿soportar japonés ahora mismo? la respuesta fue no. Almacenamiento eficiente de índices invertidos, consultas que no provoquen escaneos completos en PostgreSQL y la gestión de memoria son desafíos reales. Muchas soluciones ya existentes como ElasticSearch o Meilisearch resuelven estos problemas, pero rehacerlas es instructivo aunque costoso en tiempo.

El manejo de consultas de búsqueda es donde estoy atascado actualmente. Balancear el scoring de relevancia plantea preguntas: usar TF-IDF, BM25 o simplemente devolver coincidencias sin orden coherente. La paginación parece fácil hasta que te das cuenta de que las consultas deben mantenerse consistentes entre recargas. Implementé la API con FastAPI por ser moderna y rápida, pero la convivencia entre código asíncrono en Python y el indexador en Go genera fricciones: cada pequeño cambio obliga a reiniciar todo el entorno para verificar la comunicación. Problemas como CORS, serialización JSON y llamadas bloqueantes a la base de datos aparecen en el peor momento. Hoy por hoy los resultados son aleatorios a lo sumo y si buscas Python a veces encuentras entradas sobre cocina. Lo llamo búsqueda creativa.

El frontend con Vue.js ha sido, sorprendentemente, la parte más sencilla. Construir la barra de búsqueda y la página de resultados es satisfactorio. El frontend sencillamente pone en evidencia las debilidades del backend: no hay nada más desmoralizante que introducir una consulta y ver que tu propio proyecto falla.

PostgreSQL me encanta, pero decidir qué almacenar en la base de datos frente a qué mantener en índices en memoria ha sido complicado. He rehecho el esquema varias veces. El full-text search de Postgres es útil, pero integrarlo con mi indexador en Go añade complejidad.

Lecciones aprendidas hasta ahora: el search es difícil de verdad. La optimización prematura mata el impulso. Probablemente no hacía falta usar Go tan pronto para parsing e indexado. La web es caótica y los crawlers te enseñan cuán rotos están muchos sitios. Está bien apoyarse en gigantes: ElasticSearch, Solr y Meilisearch existen por una razón.

Sigo luchando con hacer el indexado lo suficientemente rápido sin consumir excesiva memoria, con una puntuación de relevancia que no parezca aleatoria y con una comunicación fluida entre módulos Python, Go, Postgres y Vue. También lucho con la motivación; a veces pienso que habría sido más fácil construir una aplicación de tareas.

En Q2BSTUDIO, empresa especializada en desarrollo de software y aplicaciones a medida, trabajamos a diario con problemas similares y podemos ayudarte a sortear estos obstáculos si tu objetivo es construir soluciones de búsqueda o plataformas con requisitos complejos. Si necesitas un equipo que desarrolle software a medida y aplicaciones a medida o que integre capacidades avanzadas de inteligencia artificial, contamos con especialistas en inteligencia artificial, ia para empresas y agentes IA que aceleran el proyecto.

También ofrecemos servicios de ciberseguridad y pentesting para proteger tus datos y tu infraestructura, así como servicios cloud AWS y Azure para escalar de forma segura. Nuestra experiencia abarca servicios inteligencia de negocio, implementación de power bi y automatización de procesos para convertir datos en decisiones accionables.

Si estás pensando en construir un buscador, hazlo por el aprendizaje y no por la expectativa de competir con grandes motores en un fin de semana. Y si prefieres centrarte en tu negocio mientras un equipo con experiencia se encarga de la arquitectura, la seguridad y la inteligencia aplicada, en Q2BSTUDIO podemos acompañarte desde el diseño hasta el despliegue y la operación.

En resumen: la experiencia ha sido frustrante pero increíblemente educativa. La próxima vez tal vez utilice componentes existentes antes de reinventar la rueda, o al menos tendré a mano un equipo con experiencia en software a medida, inteligencia artificial y servicios en la nube para no caer en los mismos errores.

A BREAK?

Play for a moment before you go

OUR SERVICES

How we can help you

Artificial intelligence

AI agents, chatbots, and intelligent assistants that automate tasks and serve your customers 24/7 to improve the efficiency of your business.

More info

Software Development

Web, mobile, and desktop applications, intranets, e-commerce, SaaS, and management platforms designed for your company's specific needs.

More info

Cloud services

Migration, infrastructure, managed hosting, high availability, and security on Microsoft Azure and Amazon Web Services to help your business scale without limits.

More info

Cybersecurity and pentesting

Security audits, penetration testing and protection of applications, data and infrastructure on-premise and cloud, with ethical hacking and regulatory compliance.

More info

Business Intelligence

Dashboards and data analysis with Power BI: we integrate your sources, design dashboards and KPIs and turn your data into decisions.

More info

Process automation

We automate repetitive tasks and connect your applications with n8n, Power Automate, Make, and RPA, eliminating manual work and increasing productivity.

More info

Training for Companies

We train your teams in technology with criteria: web development, databases, Git, best practices and security, automation with n8n, artificial intelligence for companies and creation of AI solutions with Azure AI Foundry.

More info

Code Auditing

We audit the code that you, your team or an AI create: we tell you what is good and what to improve, we secure it and make it ready for production, web or app.

More info

AI Image Generation

We create for you the images that your business needs with artificial intelligence: product, networks, advertising, illustration and avatars. You tell us what you want and we deliver it ready to use.

More info

AI Video Generation

We create videos with artificial intelligence for you: promotional, networking, virtual presenters, dubbing and animations. You tell us the idea and we will deliver it assembled and ready to publish.

More info

AI Conversational Avatars

We create conversational avatars with AI – digital humans with a face and voice – that serve your customers and teams with the knowledge of your company, on your website, interactive monitors, WhatsApp or Teams.

More info

Online Marketing and AI

Google Ads, Meta Ads, LinkedIn Ads and AI Engine Positioning (GEO/AEO): we attract customers and make your brand appear where they search for you, also on ChatGPT, Gemini and Perplexity.

More info

Do you have a project in mind?

Tell us your vision and we'll turn it into a software solution. Whatever the scope, we make your idea real.