main content

Cómo implementar búsqueda avanzada con Apache Solr y faceted search en tu sitio web Drupal

Hay un punto, alrededor de los pocos cientos de contenidos, en el que el buscador que trae Drupal por defecto deja de cumplir. Las consultas tardan demasiado. Los resultados no se parecen a lo que el visitante tenía en la cabeza. Y, sobre todo, no existe una forma cómoda de refinar lo encontrado. En un portal corporativo con miles de páginas de producto, documentación técnica y artículos de blog, esa fricción tiene consecuencias medibles: Baymard Institute calcula que el 68 % de los usuarios que no encuentran lo que buscan en los primeros intentos abandona el sitio.

Apache Solr ataca el problema desde la raíz. Es un motor de búsqueda empresarial construido sobre Apache Lucene, con índices invertidos de alto rendimiento, análisis lingüístico real y escalado horizontal sin sobresaltos. Conectarlo a Drupal mediante el módulo Search API convierte un buscador de andar por casa en una herramienta de descubrimiento con facetas, autocompletado, sinónimos y relevancia ajustable. Justo lo que tus visitantes esperan después de años usando Google y Amazon a diario.

Por qué el buscador nativo de Drupal se queda corto en entornos empresariales

El módulo de búsqueda que viene con Drupal usa consultas SQL directas contra la base de datos. Para un sitio pequeño, funciona. Para un proyecto serio, tropieza con tres problemas que se notan rápido.

El primero es el rendimiento. Cada búsqueda lanza un LIKE o un FULLTEXT contra la base de datos principal, que ya está ocupada sirviendo contenido, gestionando sesiones y procesando transacciones. A medida que el catálogo crece, esas consultas se vuelven lentas y, bajo picos de tráfico, pueden arrastrar al resto del sitio.

El segundo es la calidad de los resultados. El buscador nativo no entiende stemming: para él, "configuración" y "configurar" son palabras distintas. Tampoco maneja sinónimos —"facturación" y "billing" viven en mundos separados— ni mide proximidad entre términos. Ordena por coincidencia textual cruda, no por relevancia semántica, y eso genera la sensación de que el buscador "no funciona", aunque técnicamente esté devolviendo lo que se le pidió.

El tercero es la ausencia de navegación facetada. En un catálogo con cientos de referencias, el usuario necesita filtrar por categoría, rango de precio, disponibilidad o características técnicas sin teclear una consulta nueva cada vez. Drupal no trae esa capa, y montarla a mano con Views y filtros expuestos produce SQL pesado que termina empeorando el rendimiento que querías arreglar.

Qué cambia cuando Apache Solr entra en juego

Solr funciona como un servicio independiente con su propio índice, ajeno a la base de datos de Drupal. Cuando alguien busca algo, la consulta viaja directamente al motor en lugar de pasar por MySQL o PostgreSQL. La base de datos respira, y los tiempos de respuesta bajan a milisegundos incluso con millones de documentos indexados.

Indexación inteligente del contenido

Solr no guarda el contenido tal cual. Lo procesa a través de una cadena de análisis: tokenización (trocear el texto en palabras), normalización (minúsculas, gestión de acentos), stemming (reducir cada palabra a su raíz) y eliminación de stopwords (descartar artículos y preposiciones que solo aportan ruido). El resultado es un índice invertido donde cada término señala con precisión a los documentos que lo contienen.

Todo esto ocurre en segundo plano. Cuando un editor publica o actualiza un nodo, Drupal lo marca para reindexar y Solr lo procesa en el siguiente ciclo. Ni el editor lo nota, ni los usuarios sufren penalización de rendimiento.

Relevancia que se ajusta a tu negocio

Aquí es donde Solr enseña los dientes. Mediante boost factors puedes decidir que una coincidencia en el título pese cinco veces más que una en el cuerpo, o que las fichas de producto aparezcan por delante de las entradas del blog para ciertas consultas.

Las funciones de relevancia van más allá: puedes incorporar la fecha de publicación para favorecer lo reciente, la popularidad medida en visitas, o cualquier campo personalizado que refleje las prioridades de la empresa. La búsqueda deja de ser un trozo de software genérico y empieza a parecerse a tu producto.

Navegación facetada: cómo el visitante refina lo que busca

La navegación facetada —o faceted search— es la funcionalidad más visible que Solr trae al sitio. Junto a los resultados, se muestra un panel de filtros dinámicos que el sistema genera al vuelo a partir de los metadatos del contenido indexado.

Cómo se comportan las facetas en la práctica

Si alguien busca "servidor dedicado" en un sitio de servicios tecnológicos, Solr no se limita a devolver coincidencias. También calcula cuántos resultados caen en cada categoría, en cada franja de precio y en cada característica técnica. Esos contadores se convierten en filtros laterales que el usuario activa para estrechar la búsqueda sin volver a escribir.

Las facetas salen de los campos del contenido Drupal que hayas marcado como facetables al configurar el índice. Taxonomías, listas de selección, rangos numéricos y fechas son candidatos naturales. Un catálogo electrónico podría ofrecer facetas por categoría, fabricante, precio, disponibilidad y valoración media. Un portal de documentación interna podría exponer tipo de documento, área funcional, fecha y nivel de complejidad. La pauta es exponer solo lo que el usuario realmente va a usar.

Facetas jerárquicas y dependientes

Solr soporta jerarquías: seleccionar "Informática" puede desplegar "Portátiles", "Sobremesa" y "Servidores", cada uno con su contador. También admite facetas dependientes que aparecen solo cuando el usuario ya ha elegido un valor previo. El filtro de "tamaño de pantalla", por ejemplo, no tiene sentido hasta que alguien ha entrado en "Portátiles". Esta lógica condicional evita interfaces saturadas y guía al visitante por el camino que su propia búsqueda va dibujando.

Cómo encajan Drupal y Solr a nivel de arquitectura

La integración descansa en tres módulos que se reparten el trabajo. Search API ofrece la capa de abstracción que define qué se indexa y con qué campos. Search API Solr es el conector que traduce esas operaciones al protocolo de Solr. Y Facets se encarga de generar los bloques de filtros que el visitante ve en la portada de resultados.

Configurar el servidor Solr

Solr se despliega como un servicio Java aparte: un servidor dedicado, un contenedor Docker o un servicio gestionado tipo SearchStax o Websolr. La instalación pide crear un core con un esquema adaptado a Drupal. El módulo Search API Solr trae config-sets preparados con tipos de campo, analizadores de texto y cadenas de procesamiento ya pensadas. Un consejo nada glamuroso pero decisivo: las versiones de Solr, del módulo y del config-set tienen que cuadrar. La mayoría de los problemas en las primeras semanas vienen de un desfase entre las tres.

Definir el índice de búsqueda

Con la conexión en pie, toca configurar el índice desde la administración de Drupal: qué tipos de contenido entran (nodos, taxonomías, usuarios, entidades personalizadas), qué campos se incluyen y qué procesadores se aplican —resaltado de términos, corrección ortográfica, exclusión de contenido despublicado, entre otros—.

La selección de campos influye tanto en el rendimiento como en la calidad. Empieza por lo esencial —título, cuerpo, taxonomías principales, fecha— y amplía cuando los datos de uso te digan qué le falta al buscador.

Funcionalidades avanzadas que cambian la experiencia

Más allá de la búsqueda básica y las facetas, la pareja Solr + Drupal abre la puerta a capacidades que elevan la experiencia varios escalones.

Autocompletado y sugerencias en tiempo real

Solr incluye un componente de sugerencias que propone términos mientras el usuario teclea, empujándolo hacia consultas que sí van a producir resultados. Se activa con el módulo Search API Autocomplete y bebe directamente del índice, así que cada sugerencia apunta a contenido que existe. Recortar erratas, evitar páginas en blanco y acelerar el descubrimiento son las tres consecuencias inmediatas.

Sinónimos y corrección ortográfica

Un diccionario de sinónimos permite que "factura" recupere también lo etiquetado como "invoice", o que "móvil" y "smartphone" devuelvan el mismo conjunto de resultados. Es especialmente útil en empresas donde conviven jerga técnica en inglés y términos en castellano dentro del mismo catálogo.

La corrección ortográfica complementa la jugada. En vez de mostrar una página vacía cuando alguien teclea "configuracon", el buscador sugiere "Quizás quisiste decir: configuración" y le ahorra al visitante el esfuerzo de volver a empezar. Sumando ambas, las búsquedas frustradas caen en picado.

Búsqueda multiidioma

Para organizaciones con operación internacional o sitios que publican en castellano, catalán, euskera e inglés, Solr soporta búsqueda multiidioma de serie. Cada idioma se configura con su propio analizador, sus reglas de stemming y su lista de stopwords. La búsqueda funciona bien sin importar en qué idioma esté el contenido ni en cuál escriba el usuario.

Rendimiento y escalabilidad: lo que hay que vigilar

Un índice Solr afinado responde por debajo de los 50 milisegundos incluso con varios millones de documentos. Cuando un solo servidor se queda pequeño, SolrCloud reparte el índice entre varios nodos con replicación y tolerancia a fallos.

La monitorización no es opcional. Conviene seguir el tiempo medio de consulta, la tasa de cache hit, el tiempo de indexación por documento y, sobre todo, el porcentaje de búsquedas sin resultados. Este último vale oro: te dice qué está pidiendo la gente que tu contenido no cubre, y alimenta a la vez la estrategia editorial y el diccionario de sinónimos. La reindexación completa se programa fuera de las horas pico; la incremental, que solo toca lo nuevo o modificado, es la operación del día a día y apenas se nota.

Errores frecuentes en la implementación (y cómo esquivarlos)

Tres tropiezos se repiten en casi todos los proyectos.

El primero es no mantener sincronizados los config-sets. Cada actualización del módulo Search API Solr puede traer cambios en los archivos de configuración que hay que desplegar también en el servidor. Si se olvida, los fallos son silenciosos: la búsqueda sigue funcionando, pero la calidad se erosiona poco a poco sin que nadie sepa por qué.

El segundo es pasarse con las facetas. Cada faceta activa es una consulta extra que Solr tiene que resolver. Expón solo las que tus usuarios realmente activan, pon un tope al número de valores por faceta y resiste la tentación de mostrarlo todo "por si acaso".

El tercero es olvidarse de la relevancia después de la puesta en marcha. La distancia entre un buscador correcto y uno que enamora está en el ajuste fino: boost factors, sinónimos y reglas de negocio que reconocen qué contenido le importa de verdad a tu audiencia.

Cuándo merece la pena invertir en Apache Solr

No todos los sitios Drupal necesitan Solr. Un portal corporativo con cincuenta páginas se las apaña perfectamente con el buscador nativo. La inversión empieza a justificarse cuando se cumple alguna de estas condiciones: más de mil contenidos indexables, necesidad real de facetas, exigencias de rendimiento por debajo del segundo bajo carga concurrente, contenido multiidioma o funcionalidades como autocompletado y sinónimos.

Un despliegue bien hecho transforma la búsqueda. Deja de ser un punto de fricción y pasa a ser ventaja competitiva. Los visitantes encuentran lo que buscaban más rápido, exploran más contenido y se quedan más tiempo.

Si tu organización gestiona un sitio Drupal que ya se le ha quedado pequeño al buscador nativo y necesitas ayuda para diseñar e implementar una solución avanzada con Apache Solr, habla con nuestro equipo y estudiamos tu caso para proponerte la arquitectura que mejor se ajuste a tu proyecto.