SearXNG: dotar a un modelo de búsqueda web local
SearXNG (software libre bajo licencia AGPL-3.0, que no rastrea a sus usuarios ni elabora perfiles de ellos) es un metabuscador autoalojado: envía tus consultas a otros motores y combina sus resultados, sin clave de API ni factura. Para un modelo local, el paso que desbloquea todo es añadir «json» a la lista de formatos de settings.yml (solo «html» por defecto) y después conectar esa salida JSON a tu interfaz de chat o a tu agente.
Un modelo abierto no sabe nada de esta semana, y nada en su respuesta te lo advierte: hablará del mes pasado con la misma seguridad que de una tabla de multiplicar aprendida de memoria. Darle acceso a una búsqueda web corrige eso. SearXNG es un metabuscador autoalojado que ofrece este servicio sin clave de API, sin facturación por consulta y sin cuenta, lo que lo convierte en un componente coherente de una instalación local en la que no quieres enviar cada pregunta a un tercero.
#Por qué un modelo local necesita la web
El conocimiento de un modelo se detiene en su fecha de entrenamiento, y no sabe con certeza dónde se sitúa esta frontera. Existen dos soluciones: proporcionarle tú mismo los hechos en el prompt o darle los medios para buscarlos por sí mismo al responder. La búsqueda es la forma general de la segunda y la más escalable en cuanto las preguntas varían.
La opción evidente es una API de búsqueda comercial: una cuenta, una clave y una factura por consulta. SearXNG es la alternativa autoalojada. Tú gestionas la instancia, las consultas salen de tu casa, no hay ninguna cuenta y nada se registra salvo que tú lo decidas. Para una instalación cuyo interés reside precisamente en que los datos se queden en casa, enviar cada pregunta a un servicio de terceros por la puerta de atrás sería una forma bastante extraña de quedarse a medio camino.
El propio proyecto se presenta claramente como un metabuscador que no rastrea a los usuarios ni elabora perfiles de ellos, y se distribuye bajo la licencia libre AGPL-3.0. Es una licencia de copyleft fuerte: redistribuir una versión modificada, incluso como servicio en línea, obliga a volver a publicar el código fuente correspondiente bajo los mismos términos. Para un uso personal o interno de un equipo, esta cláusula nunca se activa: solo afecta a la redistribución de una versión modificada a terceros, no al simple hecho de ejecutar la instancia en casa o en tu empresa.
#Lo que hace SearXNG, sin magia
Tu ChatGPT privado y gratuito en tu máquina en 1 hora — LM Studio, Ollama, Open WebUI, tus documentos, sin nube.
- Espacio en línea de por vida
- PDF + archivos
- Reembolsado 30 j
SearXNG no rastrea la web ni posee ningún índice. Es un intermediario: tu consulta se envía a un conjunto configurable de motores existentes, sus respuestas llegan, se eliminan los duplicados y se reordenan, y recibes una única lista. Los motores consultados no ven tu dirección IP, sino la de la instancia.
Esta condición de intermediario también explica la promesa de privacidad que destaca el propio proyecto: la instancia no rastrea a los usuarios ni elabora perfiles sobre ellos. Ninguna cuenta, ninguna cookie de seguimiento publicitario, ningún historial de búsquedas vinculado a una identidad: esto distingue claramente a SearXNG de los buscadores comerciales cuyo modelo de negocio se basa precisamente en elaborar perfiles a partir de las consultas y los clics a lo largo del tiempo.
- La calidad se hereda
- Desactiva los motores que devuelven ruido para tu uso específico: esto mejora las respuestas del modelo más que cualquier ajuste del prompt, porque el modelo no puede compensar un contexto inicial ya contaminado.
- La automatización parece un abuso
- Una persona realiza unas pocas búsquedas por minuto; un bucle de agente realiza decenas. Los motores de búsqueda consultados responden con captchas y bloqueos temporales, que ves reflejados en resultados vacíos.
Esta fuerte dependencia de los motores de los que obtiene sus resultados es la principal contrapartida de cualquier metabuscador: SearXNG no puede ser mejor que los resultados que agrega, y también hereda sus fallos y sus cambios. Si un motor cambia su marcado HTML de un día para otro, el módulo correspondiente de SearXNG deja de funcionar hasta que los responsables de su mantenimiento lo actualicen. Esto explica por qué, en una instancia que lleva mucho tiempo sin actualizarse, algunos motores dejan de responder silenciosamente, sin un mensaje de error explícito.
#L'installer
- 01Desplegar el contenedorLa imagen oficial está publicada en Docker Hub (searxng/searxng) y en GHCR (ghcr.io/searxng/searxng), ambas mantenidas por el propio proyecto. En una sola máquina, la imagen junto con un servicio de caché Valkey (el fork de código abierto de Redis) bastan de sobra para empezar.
- 02Mantenerlo en la red localUna instancia expuesta en internet se descubre en pocos días y se utiliza como intermediario gratuito, lo que provoca que se bloquee su acceso a los motores de búsqueda que consulta. Se limita al acceso desde la red local o se protege con autenticación.
- 03Verificar desde la máquina que lo llamaráNo desde tu navegador. Un contenedor que llama a otro necesita la dirección visible desde Docker, no localhost.
#El ajuste que todo el mundo pasa por alto
Por defecto, una instancia de SearXNG recién instalada solo sirve HTML: perfecto para un humano, totalmente inutilizable para un programa. La documentación oficial confirma que la clave search.formats de settings.yml solo contiene «html» por defecto, aunque csv, json y rss están disponibles; hay que añadir json y reiniciar. Esta es la única causa de la gran mayoría de los «no funciona» que se encuentran al conectar SearXNG a una interfaz de chat.
#Conectarlo a tu modelo
| Entorno | Rol de SearXNG |
|---|---|
| Interfaz web de chat local | Proveedor de búsqueda integrado: se introduce la URL de la instancia, las respuestas incluyen una lista de fuentes |
| Framework de agentes | Una herramienta de búsqueda que el agente puede invocar |
| Cadena de búsqueda documental | Etapa de recuperación para preguntas de actualidad, junto al índice de tus documentos |
| Herramienta de automatización | Una simple llamada HTTP al punto de acceso JSON |
El esquema es siempre el mismo: la búsqueda devuelve fragmentos y direcciones, tu código o tu interfaz selecciona algunos, y estos se insertan en el prompt antes de que el modelo responda a la pregunta planteada. El modelo no navega: lee lo que se le ofrece. Por eso, la calidad de los fragmentos y el tamaño de la ventana de contexto tienen más peso aquí que el tamaño del modelo.
#Los ajustes que realmente cambian algo
Una instancia recién instalada activa por defecto un gran número de motores, lo que parece generoso, pero reduce la calidad: más ruido, más duplicados y más latencia al esperar a que el motor más lento del grupo devuelva su respuesta. La primera mejora real nunca consiste en modificar el prompt del modelo, sino la lista de motores activos y su pertinencia real para el uso previsto.
- Desactivar los motores que no sean pertinentes
- Un uso centrado en documentación técnica, por ejemplo, no necesita los motores de imágenes ni de compras activados por defecto. Cada motor menos supone una fuente de ruido menos y una petición menos a los servicios de búsqueda externos que gestionar cada día.
- Activar el caché
- Una base de datos Valkey compartida evita repetir una búsqueda idéntica en cada llamada de un agente que repite la misma pregunta en un bucle, lo que ahorra tanto tiempo de respuesta como parte de la valiosa cuota disponible en los motores de búsqueda consultados.
- Fijar un límite de resultados
- Pedir diez resultados cuando el modelo solo leerá tres desperdicia mucho espacio de contexto y añade latencia sin aportar nada concreto. Ajusta el número de resultados devueltos a lo que tu prompt realmente aprovecha después, ni más ni menos.
- Monitorear los registros al arrancar
- Una instancia recientemente actualizada a Valkey puede fallar silenciosamente si el nombre de host aún apunta a un antiguo servicio de caché. Un vistazo a los logs del contenedor evita buscar en otra parte un problema que está ahí.
- Instalar Open WebUI, la interfaz que consume estos resultados
- Automatizar secuencias con n8n y Ollama
- Arquitectura de un agente local que utiliza herramientas
- LiteLLM: un proxy unificado local y en la nube
#Limitaciones que debes prever
- Los límites de los motores
- Resultados vacíos significan casi siempre un bloqueo anterior, no un error de configuración del propio SearXNG. Menos motores activos, más caché Valkey, y sobre todo, sin agente que busque en bucle sin límite de frecuencia.
- Extractos cortos
- Para obtener contenido en profundidad, hay que recuperar y limpiar las páginas a las que apuntan los enlaces: esa es la función de un extractor especializado, no de un motor de búsqueda que se limita a transmitir resultados ya resumidos previamente.
- Sin clasificación inteligente
- SearXNG combina resultados, no entiende tu pregunta. Una consulta vaga devuelve un contexto vago, que el modelo resume cuidadosamente sin nunca indicar que la pregunta planteada estaba mal formulada.
- El mantenimiento corre por tu cuenta
- Los motores de búsqueda de los que depende cambian sus páginas, y los módulos deben adaptarse. Una instancia que se deja un año sin actualizar se degrada silenciosamente.
- La migración a Valkey afecta a las instancias antiguas
- Una instancia instalada hace más de un año puede seguir haciendo referencia a un antiguo servicio de caché. Comprueba el nombre de host configurado para el limitador: si ya no coincide con el contenedor que está realmente en ejecución hoy, la protección contra bots falla silenciosamente en lugar de bloquear correctamente los abusos.
#FAQ
¿Es SearXNG gratuito?+
¿Por qué mi instancia devuelve HTML y no JSON?+
¿Puedo usar una instancia pública en lugar de alojar la mía?+
¿Se necesita una GPU?+
¿Por qué dejan de aparecer resultados al cabo de un tiempo?+
¿Esto actualiza mi modelo?+
¿Qué cambia la licencia AGPL-3.0 de SearXNG para mí?+
- Fuente: repositorio GitHub de SearXNG
- Fuente: guía oficial de instalación en contenedor
- Fuente: documentación de formatos de resultados
¿Un comentario, un error, una precisión? Avísanos, eso mejora la guía para todos.