Búsquedas en Drupal

LIBP-0343 (Libro de pautas)

Mejorar el rendimiento de las búsquedas en Drupal siguiendo estas indicaciones

Una de las funcionalidades que degrada los recursos de la base de datos y que pone en riesgo la estabilidad de nuestra aplicación es la búsqueda que viene integrada dentro del núcleo de Drupal. La función de búsqueda de contenidos funciona bastante bien cuando el volumen de datos no supera los 10.000 nodos y no tiene mucho tráfico. Sin embargo, los índices que usa Drupal se almacenan en base de datos y son una parte fundamental de la sobrecarga de consultas

Pautas

TítuloCarácter
Módulo SearchRecomendada
Motor de búsqueda independienteRecomendada
Externalización de la búsquedaRecomendada

Utilizar el módulo Search cuando el volumen de datos no supere los 10.000 nodos

Se recomienda utilizar el módulo Search cuando la aplicación tenga un volumen de datos que no supere los 10.000 nodos y no tenga más de 1.000 visitas diarias. Esto se debe a que la indexación de los nodos está almacenada en la tabla “search_index” de la base de datos y, como consecuencia, cada búsqueda le genera consultas costosas de procesar.

Motor de búsqueda independiente

Implementar un motor de búsqueda independiente

Implementar un motor de búsqueda independiente puede ayudar a ahorrar muchas consultas a nuestra base de datos.

Externalización de la búsqueda

Considerar la posibilidad de externalizar la búsqueda

Existen sistemas especializados (por ejemplo Apache-solr que se integra perfectamente en Drupal). Además, podemos utilizar este potencial no solo para las búsquedas, sino también para servir cualquier tipo de listado o cruces de taxonomías, ya que los IDS (tids) de taxonomías se indexan como un término más de búsqueda, ayudando a evitar los costosos joins de las tablas de taxonomías de Drupal, canalizando esa carga a un cluster de servidores de búsqueda que aligerará la carga del servidor de base de datos.