Zahoribo, un buscador en boletines oficiales

Manu Pijierro
17 min readJun 22, 2020

Zahoribo es el último proyecto personal en el que he estado trabajando los últimos meses. Por fin ve la luz una herramienta de búsqueda de información pública que honestamente creo que puede ayudar a mucha gente.

¿Quieres conocer de qué se trata? ¿cómo funciona? ¿cómo puede ayudar a personas y empresas? Sigue leyendo que te lo cuento pero antes, te dejo un índice del contenido de este artículo:

  1. ¿Qué es Zahoribo?
  2. Problemas del mundo real que resuelve
  3. ¿Cómo resuelve estos problemas Zahoribo?
  4. ¿A quién se los resuelve?
  5. ¿Qué contenido indexa?
  6. ¿Cómo funciona el indexado de contenido?
  7. ¿Cómo funciona el buscador?
  8. Búsquedas avanzadas
  9. Otras secciones productivas de Zahoribo
  10. Telegram y extensiones para navegadores
  11. Funcionalidad para usuarios registrados
  12. Tecnología
  13. Proceso de desarrollo
  14. Reflexión personal
  15. Futuro del proyecto
  16. Agradecimientos
  17. Próximos artículos
  18. Actualizaciones

1. ¿Qué es Zahoribo?

Zahoribo se trata de un buscador en boletines oficiales cuya misión principal es simple y directa:

Organizar la información oficial y hacer que sea útil y accesible para todos

En esencia se comporta como un pequeño ‘Google’ dentro de una temática muy específica como es la información oficial y pública existente en nuestras administraciones.

Buscador inicial de Zahoribo. Cuenta a día de hoy (22–06–2020) con algo más de tres millones de páginas indexadas.

Zahoribo es una herramienta de búsqueda de información honesta y transparente que nace con un claro compromiso de servicio público para mejorar la vida de las personas y las empresas en la medida de lo posible.

Zahoribo nace con el compromiso de mejorar de forma significativa la productividad del mayor número de personas posible.

Se trata de una herramienta que procura aportar el mayor beneficio posible a la sociedad.

¿De dónde viene el nombre de Zahoribo?

Zahoribo viene de la palabra zahorí que se suele emplear para referirse a personas que son capaces de encontrar lo que está oculto, especialmente manantiales subterráneos. Además, en las hurdes extremeñas los zajorilis hurdanos eran considerados hombres sabios, buenos, justos, e incluso con ciertas facultades para la adivinación o la videncia.

De zahorí hemos cogido el concepto de buscador de cosas ocultas y le hemos añadido el sufijo bo, de boletín, para formar el nombre completo Zahoribo, un buscador en boletines.

2. Problemas del mundo real que resuelve

Como es bien sabido, en España tenemos multitud de entidades públicas de ámbito nacional, regional y local. La inmensa mayoría de estas entidades publican con una periodicidad casi diaria boletines con información relativa a sus competencias. Esta información tiene carácter público y oficial, es decir, es accesible y de obligado cumplimiento e interés para cada persona o empresa de este país.

Entonces, ¿cuáles son los problemas a resolver? Muchos, pero principalmente los tres siguientes:

  • La cantidad de información. Son miles de páginas diarias las que se publican entre todos los boletines y esto hace virtualmente imposible a una persona estar al tanto de todo lo que se publica.
  • Fuentes de información diversas y no normalizadas. Cada boletín es accesible a través de la página web oficial de cada administración. Una persona que quisiera encontrar información de su interés tendría que ir ‘saltando’ de página web en página web realizando la misma búsqueda una y otra vez con la consiguiente pérdida de tiempo. Además, cada web tiene su propia forma personalizada de acceder a la información lo cual dificulta el acceso entre varias fuentes.
  • Buscadores oficiales que no funcionan como deberían. Por ejemplo, basta ilustrar con el buscador del Diario Oficial de Extremadura para darse cuenta del poco cariño que se ha puesto en su desarrollo y experiencia de usuario. Y eso cuando existe, porque hay contenido público en el que cual directamente no se puede buscar. Por ejemplo, la información de los plenos de los ayuntamientos suele estar ‘colgada’ en forma de archivos PDF’s cuya búsqueda en ellos de forma eficiente es prácticamente imposible.

¿Y en qué se traduce todo esto? pues al final se trata también de dinero. Cada uno de los problemas expuestos anteriormente, de forma directa, hace que las personas y empresas que buscan información pública pierdan tiempo y la pérdida de tiempo se traduce la mayoría de las veces en pérdida de dinero. Y, de forma indirecta, cada uno de los problemas puede suponer la pérdida de oportunidades en forma de ayudas, subvenciones, oportunidades laborales, anuncios y publicaciones de interés para empresas y particulares…etc., que son publicadas diariamente en cada uno de los boletines.

3. ¿Cómo resuelve estos problemas Zahoribo?

Zahoribo es un buscador pensado para solucionar de la mejor forma posible los problemas mencionados anteriormente.

  • Centralizar y normalizar la información de manera que exista un único lugar con toda la información que cada día se publica en los distintos boletines. Esto supone una gran ventaja para los usuarios ya que evitan ir ‘saltando’ de administración en administración buscando sus intereses.
  • Configurar un motor de búsqueda potente, rápido y fiable. Zahoribo está funcionando sobre Sphinx Search, un software libre que básicamente lo que hace es crear índices para acceder de forma muy rápida a los datos.
  • Filtros potentes de información: Buscar entre millones de página puede ser una tarea complicada. Zahoribo ha desarrollado una serie de filtros simples y avanzados para realizar búsquedas que nos lleven con éxito hasta la información deseada de forma rápida y eficiente
  • Funcionalidad que ayuda al usuario: como las alertas, gracias a las cuales Zahoribo busca tus intereses por ti cada día entre todo lo que se publica y te envía un correo electrónico con las novedades encontradas. O los marcadores que te ayudan a guardar en tu lista de favoritos los boletines, anuncios o páginas que más te interesen. O las etiquetas, que son palabras que etiquetan resultados de búsqueda en tiempo real ayudándote a clasificar los resultados obtenidos.
  • Experiencia de usuario: hemos intentado que el uso del buscador sea lo más sencillo posible para cualquier persona y la presentación de la información clara y simple.

4. ¿A quién se los resuelve?

Teóricamente todos los ciudadanos y empresas son usuarios potenciales e interesados en Zahoribo. Ya que la información oficial que publica cada administración es de obligado conocimiento y cumplimiento por parte de cada ciudadano y cada empresa.

Pero, si aún concretamos más, y pensando en usuarios de uso diario tenemos por ejemplo a cualquier persona que trabaje en la administración pública, empresas como asesorías fiscales, laborales, consultorías de todo tipo, empresas o profesionales relacionadas con el mundo legal, personas o empresas pendientes de publicaciones relacionadas con ayudas, subvenciones o puestos de trabajo…etc., sindicatos, asociaciones, fundaciones,…etc. En realidad, como hemos dicho anteriormente, cualquiera puede ser usuario potencial de Zahoribo.

5. ¿Qué contenido indexa?

Actualmente Zahoribo indexa cada día el contenido de los siguientes boletines oficiales:

Hasta la fecha, Zahoribo tiene entre sus objetivos principales información oficial y pública extremeña. En un futuro no muy lejano lo más probable es que abarque otras comunidades autónoma.

Puedes seguir el calendario de Zahoribo para revisar el contenido indexado.

6. ¿Cómo funciona el indexado de contenido?

La mayoría de los boletines se publican todos los días laborales y alguno, dependiendo de la ocasión, en fines de semana, festivos, etc. Se suelen publicar a primeras horas de la mañana y, es posible, que durante un día, y debido a motivos de urgencia e importancia, una administración publique más de un boletín sin esperar al día siguiente, los llamados boletines extras.

Teniendo esto en cuenta, Zahoribo, cada día desde las 06:00 horas, en intervalos de 15 minutos y hasta las 09:00 horas accede a cada publicación para revisar si hay alguna publicación nueva. Si la hay la obtiene, procesa cada página extrayendo la información en ella contenida y la indexa. Además, desde las 09:00 hasta las 23:59 de cada día, durante cada hora se buscan esos boletines extras que pudieran aparecer a lo largo de la jornada.

Zahoribo cuenta a día de hoy (22 de Junio de 2020) con algo más de tres millones de páginas indexadas.

7. ¿Cómo funciona el buscador?

El funcionamiento es sencillo y similar a como funciona un buscador como Google.

La página inicial de Zahoribo tiene un buscador en el cual iniciar el proceso de búsqueda de contenido. Además cuenta con una primera batería de filtros muy simples para seleccionar.

Buscador de la página principal

Una vez se realice una búsqueda, se presenta la página con los resultados obtenidos en el que aparece en la parte de la izquierda la sección de los filtros que se pueden utilizar y en la parte derecha los resultados obtenidos. Cada resultado corresponde a una página y se indica el boletín y el anuncio al que pertenece, la fecha, enlaces a los mismos, un pequeño extracto que contiene el texto buscado y además la búsqueda realizada resaltada en amarillo. También es posible desplegar el contenido para ver el resultado ‘en bruto’ de la página.

Ejemplo de una página de resultados de Zahoribo

Dependiendo de los filtros aplicados la página puede variar en contenido pero será significativamente similar a esta vista mostrada.

8. Búsquedas avanzadas

Zahoribo funciona gracias a Sphinx Search, un potente motor de búsqueda que además de rapidez en la búsqueda proporciona un sinfín de posibilidades para filtrar de forma muy avanzada millones de páginas de texto.

Aunque puedes acceder a nuestro manual de uso para leer más sobre estas búsquedas avanzadas, a continuación te exponemos algunas de las cosas que se pueden hacer:

  • Buscar palabras exactas: los motores de búsqueda suelen buscar por lexemas, esto es, buscar por la raíz de la palabra. Si buscas subvención, en realidad se buscará subvenc y devolverá resultados que contengan palabras como subvención, subvenciones, subvencionable…etc. Pero con Zahoribo es posible buscar palabras exacta. En este caso valdría buscar =subvención para encontrar resultados que tuvieran esa palabra exactamente.
  • Buscar frases exactas: de igual forma, escribiendo las palabras clave entre comillas dobles se puede buscar contenido que tenga todas las palabras buscadas y en el mismo orden.
  • Excluir palabras: se pueden hacer búsquedas que no contengan alguna palabra en concreto. Por ejemplo, puedes buscar ayuda -educacion y se obtendrán resultados que contenga la palabra ayuda pero no contenga educación.
  • Buscar unas palabras u otras: es decir, puedes realizar búsquedas ‘or’ de forma que devuelva resultados si existe una palabra u otra. Sirve muy bien para buscar sinónimos, por ejemplo, se puede buscar coches | vehículos y se obtendrán resultados que contengan la palabra coches o vehículos.
  • Al menos una palabra: se pueden hacer búsquedas e indicar que deban encontrarse resultados que incluyan una o varias de las palabras buscadas.
  • Agrupar búsquedas: usando paréntesis se pueden agrupar búsquedas de forma que podemos hacer lo siguiente: (ayudas educación) | (ayudas movilidad) lo que nos daría resultados que tuvieran ayudas educación o ayudas movilidad.
  • Buscar en campos específicos: cada resultado está organizado en varios campos. El @tema, @asunto y @contenido. Se pueden hacer búsquedas individuales en cada uno de ellos y/o combinarlas. Por ejemplo @tema consejería educación @contenido ayudas nos daría resultados que tuvieran consejería de educación en el campo tema y ayudas en el contenido de la página en si.
  • Búsquedas anidadas: para buscar entre millones de páginas hace falta, en ocasiones, filtrar mucho, por eso, Zahoribo incorpora funcionalidad para poder buscar entre resultados de búsquedas anteriores de forma recursiva.

Si quieres más posibilidades de búsqueda y más ejemplos de uso te recordamos que puedes seguir el manual del usuario.

9. Otras secciones productivas de Zahoribo

Zahoribo es básicamente un buscador de contenido pero, además, hemos querido ampliar las funcionalidades que facilitan la organización de los boletines y la búsqueda de contenido.

  • Resumen diario: en esta sección se puede ver cada día un resumen de los boletines y anuncios publicados. El objetivo es que en una misma pantalla puedas revisar lo más importante del día. Además desde este resumen diario se puede acceder a un buscador de boletines por fecha o por boletín, número y año.
  • Calendario: como su propio nombre indica es un calendario en el que se indican todos los boletines publicados por día y mes. El objetivo es que se pueda acceder fácilmente a uno de ellos por día y mes y además que el usuario pueda hacerse una idea visual de cuál y cuándo se ha publicado un boletín.
  • Manual del usuario: Zahoribo por defecto funciona de forma potente y precisa pero es posible aumentar dicha potencia y calidad de los resultados de búsqueda. Hemos creado un amplio manual del usuario en el que se explica como funciona el buscador y una serie de consejos para poder realizar búsquedas avanzadas.

10. Telegram y extensiones para navegadores

Zahoribo es accesible desde otras aplicaciones. Para facilitar a los usuarios las búsquedas rápidas en nuestro contenido hemos desarrollado para las siguientes plataformas:

Telegram

Se ha creado un bot llamado @zahoribot. Una vez añadido como contacto, puedes realizar búsquedas con el comando /buscar contenido de la búsqueda.

Bot de Telegram para hacer búsquedas en Zahoribo

Extensiones para Chrome y Firefox

Tanto para el navegador Chrome como para el navegador Firefox hemos creado extensiones para hacer búsquedas rápidas de contenido sobre Zahoribo. Si quieres instalar y probar estas extensiones solo tienes que hacer clic en los siguientes enlaces y añadirlas a tu navegador favorito.

Una vez instaladas podrás utilizarlas para realizar búsquedas rápidas y obtener resultados resumidos con un enlace hacia los resultados expandidos.

Vista de la extensión tras realizar una búsqueda

11. Funcionalidad para usuarios registrados

El posible usar Zahoribo de forma anónima para buscar contenido. No hay problema. Ahora bien, como usuario registrado tendrás funcionalidad extra que podrás aprovechar para sacar mayor rendimiento a tus búsquedas.

Alertas

Las alertas no son más que un mecanismo que te permite ahorrar tiempo dejando que Zahoribo busque por ti y para ti todo aquello que te interesa cada día con los nuevos boletines que se publiquen. El usuario define una búsqueda clave y si se encuentra contenido se envía un correo electrónico al usuario con los resultados de búsqueda.

Ejemplo de alerta enviada mediante correo electrónico

Etiquetas

Un usuario registrado también puede crear etiquetas. Las etiquetas no son más que palabras (se pueden añadir hasta tres sinónimos) que ayudan a clasificar y a dar mayor contexto a cada resultado de búsqueda en tiempo real.

Ejemplo de etiqueta con la palabra principal y sinónimos

Una vez creada una etiqueta, cada resultado de búsqueda se etiquetará con la palabra principal si contiene esa palabra o cualquiera de sus sinónimos.

Visualización de las etiquetas en resultados de búsqueda

Marcadores

Los marcadores son elementos favoritos de un usuario que puede guardar junto a una descripción. Estos elementos pueden ser boletines, anuncios o páginas.

Para añadir un marcador únicamente hay que hacer clic en el icono correspondiente.

Elementos sobre los que se puede crear un marcador

Y, si fuera necesario, indicar una descripción al mismo nos servirá para recordar el motivo por el que lo añadimos a nuestros marcadores favoritos:

Formulario de creación de un marcador

Posteriormente se pueden revisar en el panel privado de cada usuario y tenerlos siempre disponibles y además en cada búsqueda si aparece un boletín, anuncio o página marcada se mostrará visible.

Ejemplo de marcador en resultado de búsqueda

12. Tecnología

Desarrollar un buscador que busque entre millones de páginas y que cada día se actualice con varias miles más ha supuesto para mi un reto tecnológico importante. Próximamente en este blog se publicará un artículo mucho más detallado con información técnica sobre la arquitectura y el indexado pero a modo de resumen tenemos los siguientes elementos:

  • Dos servidores Linux.
  • Programado con Laravel 6.0, un framework PHP y base de datos con MySql.
  • En cada uno de los servidores hay una instancia de Sphinx Search funcionando. Ambas instancias están configuradas como índices distribuidos teniendo uno de ellos información hasta el 31 de diciembre de 2019 y el servidor principal al que accede al usuario con información desde el 1 de enero de 2020 siendo el que se actualiza diariamente.

13. Proceso de desarrollo

Comencé a programar en el proyecto allá por noviembre de 2019 creo recordar. Una primera versión inicial no fue costosa conseguirla. El objetivo era poder mostrar el potencial de un buscador de este tipo. Con esa primera versión inicial hablé con varias personas usuarias del Diario Oficial de Extremadura. Todas me dijeron que la idea y el funcionamiento eran muy buenos, así que digamos que pude validar la idea original.

Esta fórmula he ido aplicándola en sucesivas rondas. Aplicaba mejoras y las enseñaba. Con el feedback recibido intentaba mejorar el producto y así sucesivamente. En todo este tiempo he hablado con personas que pertenecen tanto a entidades públicas como privadas y todas se han visto interesadas en una plataforma de este tipo. Aún así he dado algunos tumbos que me han hecho programar funcionalidad…para luego quitarla.

La parte que más me ha costado ha sido el diseño de la aplicación, tres versiones he hecho hasta que he llegado a la versión final (de momento). Además, reconozco que la parte de diseño es algo en lo que no soy bueno y por lo tanto tampoco he podido hacer mucho más que dejarlo decente, o eso espero.

También me ha llevado algún tiempo entender bien como funciona un motor de búsqueda, su uso, configuración y optimización para que los resultados fueran los mejores.

Durante el desarrollo he leído al menos dos libros para intentar que el resultado fuera el mejor posible. Uno ha sido Introduction to Search with Sphinx, y el clásico No me hagas pensar de Steve Drug.

La publicación de la primera versión supone un punto y seguido en este proyecto cuyo futuro está lleno de novedades.

14. Reflexión personal

Zahoribo es un proyecto personal. 100% personal. Todo lo que se ve y lo que no se ve lo he programado yo solo. La programación de la parte pública y privada de usuarios, la configuración de los servidores, la configuración del motor de búsqueda, el funcionamiento del propio buscador, el diseño de la página, la redacción de los textos, la distribución de la información, la programación de las extensiones para Chrome y Firefox, la interacción con el bot de Telegram, la redacción de este mismo post …etc. Todo.

Es un proyecto bonito, a mi me me gusta mucho…si no fuera así, no creo que hubiera podido finalizar y publicar la primera versión. No solo me gusta por la temática, la tecnología, el reto que ha supuesto para mi y todo lo que implica sino que además creo que Zahoribo honestamente puede ayudar a mucha gente.

Aún así, el coste personal ha sido alto. Me ha llevado muchas horas el desarrollo y he tardado más de seis meses en publicar la primera versión y dando ‘gracias’ al mes en el que por el coronavirus los proyectos profesionales que llevo como autónomo se pararon casi todos. Ese mes lo aproveché para tirar horas de desarrollo en Zahoribo. Desde entonces, muchos días de muchas semanas levantándome muy temprano para aprovechar un par de horas diarias, o más, al proyecto y no quitar tiempo de desarrollo a mis clientes en mi trabajo de autónomo.

Cualquier cambio, funcionalidad, configuración o incluso la redacción de este mismo artículo suponen una gran cantidad de horas que a veces es complicado asumir y justificar ante el entorno familiar, eso es así. No he medido el tiempo de desarrollo y creo que si lo hubiera medido no me habría hecho nada bien. Los proyectos personales los veo más como desarrollos en los que disfrutar sin la presión del tiempo…aunque esa presión la sienta uno de manera inconsciente cuando ve que se alargan las jornadas de programación.

A decir verdad, llevar a cabo de forma individual un proyecto grande como este es muy cansado física y mentalmente. En un período tan largo de desarrollo supone atravesar distintas fases de ánimo. Días que piensas que todo va a ir bien y días en los que piensas que el final queda muy lejos y no vas a tener ni tiempo ni energía para terminarlo. Hoy por hoy me pensaría volver a llevar un desarrollo así yo solo, lo más probable es que buscara compañeros de viaje.

Pero bueno, una vez hecho, al final merece la pena, una vez lo terminas ves que todo tiene sentido (o al menos lo piensas así) y uno se siente orgulloso de lo que ha conseguido. Construir herramientas tecnológicas que ayudan a otras personas aporta mucha satisfacción personal. Atrás quedaron las noches sin dormir, las horas y horas leyendo Stackoverflow y otros foros similares para buscar ayuda a problemas a los que nunca me había enfrentado.

También es justo decir que Zahoribo me ha hecho aprender mucho.

Espero que Zahoribo ayude a otras personas. Aunque sea a una sola, con que haga la vida más fácil a una sola persona me daré por satisfecho.

15. Futuro del proyecto

El futuro del proyecto pasa ahora mismo por darle visibilidad y por llegar a cuantas más personas e instituciones sea posible. Además, una vez descanse, que será pronto, iré añadiendo más funcionalidad que tengo pendiente de incluir para mejorar las búsquedas y la funcionalidad que ayude al usuario.

También pasa por incluir más información, más boletines, más ayuntamientos, más información pública para ponerla a disposición de todas las personas. Este ’nicho’ es muy amplio y la cantidad de información por analizar todavía es enorme. Poco a poco.

Además, quedan algunos retos técnicos por llevar a cabo como es el desarrollo de un API para poder consultar Zahoribo desde cualquier otra aplicación o la integración con procesadores de lenguaje natural para poder hacer búsquedas más ‘humanas’ y no únicamente por palabras. Igualmente, poco a poco.

A raíz de Zahoribo, también he observado una serie de necesidades en empresas y entidades públicas a las cuáles daré una solución tecnológica en las próximas semanas, a ver que tal sale. De momento son solo ideas…me las guardo y cuando las ejecute y lleve a cabo hablaré de ellas. A mi me gusta más hacer que hablar.

Y, finalmente, ojalá pudiera convertir Zahoribo en un producto. Conseguir que alguien pague (aunque sea poco) por su uso. Haber aportado una solución a los problemas de personas y empresas y que estas consideren adecuado pagar por esa solución. Esto será otro frente que tendré que atacar muy pronto y enfrentarme a otro paradigma al cual no me he enfrentado nunca. La venta de un producto digital.

16. Agradecimientos

Como he comentado anteriormente, el 100% del proyecto lo he llevado en solitario, pero también es cierto que hay personas que me han dado su opinión muchas veces y a las que he preguntado quizás más de lo debido. Gracias por sus aportes y por aguantarme a Ricardo (que además me proporcionó una idea de fuente para el título muy buena y mejoras y correcciones a algunos textos) y a Civantos.

Y también, en general, a todos los que desarrollan software libre y crean herramientas maravillosas para que otros podamos llevar a cabo nuestros proyectos, especialmente a los creadores de Laravel y Sphinx Search.

17. Próximos artículos

En próximos artículos del blog explicaré de forma detallada aspectos más técnicos del proyecto sobre como funciona el indexado diario, el buscador, como se configura Sphinx para obtener los mejores resultados o para funcione de forma distribuida.

18. Actualizaciones

  • Artículo escrito el 30 de Junio de 2020 que explica la actualización del algoritmo de búsquedas y otras actualizaciones de la versión 1.1.0. Haz clic aquí para leerlo.

Y esto es todo de momento, queda oficialmente publicada la versión 1.0.0 de Zahoribo.

Cualquier comentario, duda, sugerencia o corrección será bienvenida. Gracias por llegar hasta el final del artículo :)

¡Chimpún!

--

--