JRMora JSON Search

Descripción

La búsqueda predeterminada de WordPress se basa en consultas pesadas de MySQL que realizan escaneos completos de las tablas (LIKE %keyword%). A medida que tu sitio crece y alcanza miles de entradas, este proceso reduce el rendimiento del servidor, aumenta la carga de la CPU en la base de datos y provoca tiempos de respuesta lentos en las búsquedas o tiempos de espera agotados.

JRMora JSON Search resuelve por completo este cuello de botella al externalizar el proceso de búsqueda a un archivo JSON estático y ligero. Al publicar o actualizar contenido, el plugin indexa automáticamente los títulos, los extractos de contenido, las categorías y las etiquetas en un archivo JSON optimizado dentro de un directorio específico /uploads/jrmora-json-search/.

Cuando un usuario realiza una búsqueda en tu sitio, el plugin intercepta la consulta principal, analiza el archivo JSON preindexado en milisegundos y envía directamente a WordPress los ID de las entradas que coinciden (WHERE ID IN (...)). De este modo, se evitan las costosas comparaciones de cadenas en la base de datos, lo que reduce drásticamente la carga de la base de datos y ofrece resultados de búsqueda casi instantáneos.

Características principales:

  • Alivio de la carga de la base de datos: Elimina las pesadas consultas LIKE %...% sobre el contenido de texto completo en toda la base de datos.
  • Compatibilidad universal con temas: Se integra de forma transparente en el bucle de búsqueda predeterminado de WordPress sin necesidad de modificar las plantillas ni utilizar shortcodes.
  • Reindexación automática: Actualiza automáticamente el archivo de búsqueda JSON cada vez que se publica, edita o elimina una entrada.
  • Normalización de acentos y signos diacríticos: Elimina los acentos y los caracteres especiales durante la creación del índice y la búsqueda de coincidencias, lo que garantiza resultados precisos independientemente de la ortografía utilizada en la búsqueda (por ejemplo, se encuentran coincidencias entre «Periodismo» y «periodismo»).
  • Compatibilidad con Polylang: Compatibilidad integrada para respetar el filtrado multilingüe al utilizar Polylang.
  • Banner de rendimiento y shortcode: Banner de rendimiento opcional que muestra el recuento total de resultados y los tiempos de ejecución de las consultas, o que se puede integrar mediante [fast_json_search_stats].
  • Herramienta de reindexación manual: Incluye una sencilla página de ajustes para reconstruir manualmente el índice de búsqueda cuando sea necesario, tras la importación de contenido por lotes.
  • Limpio y ligero: Sin dependencias externas, sin tablas de base de datos adicionales, sin sobrecarga de tareas cron en segundo plano y totalmente internacionalizado para su localización.

¿Cuándo resulta más útil este complemento?

  • Sitios web, blogs y publicaciones digitales con gran cantidad de contenido y miles de entradas publicadas.
  • Sitios que registran un elevado uso de la CPU del servidor o en los que se activan los registros de consultas lentas de la base de datos a causa de las búsquedas internas del sitio.
  • Entornos de alojamiento con límites estrictos de recursos de base de datos, en los que las búsquedas de texto completo sin indexar reducen el rendimiento.

Copyright

JRMora JSON Search se distribuye bajo los términos de la licencia GNU GPL v2 o posterior.

Capturas

Instalación

  1. Sube el directorio jrmora-json-search al directorio /wp-content/plugins/, o sube el archivo .zip directamente desde el escritorio de WordPress a través de Plugins > Añadir nuevo > Subir.
  2. Activa el plugin a través del menú Plugins de WordPress.
  3. Al activarse, el plugin genera automáticamente el archivo inicial search-es.json dentro de tu directorio /wp-content/uploads/jrmora-json-search/.
  4. Opcional: Ve a Ajustes > JRMora JSON Search para revisar los ajutes y el botón de reindexación manual.

FAQ

¿Cómo sustituye el plugin las consultas de búsqueda de MySQL?

Cuando se activa una búsqueda en la vista pública, el plugin intercepta la consulta SQL principal, anula la cláusula estándar LIKE %phrase% y, en su lugar, busca en el archivo local search-es.json. Una vez recuperados los ID coincidentes, los introduce directamente en la consulta SQL mediante post__in.

¿Crea tablas de base de datos personalizadas adicionales?

No. JRMora JSON Search no crea ninguna tabla adicional en tu base de datos. Genera un único archivo estático .json dentro de una carpeta específica situada en el directorio por defecto de archivos subidos de WordPress.

¿Qué ocurre cuando publico o edito un artículo?

El índice se actualiza automáticamente en tiempo real. El plugin detecta las acciones nativas de WordPress (save_post y deleted_post) para reconstruir el índice sin necesidad de intervención manual.

¿El archivo JSON es de acceso público u ocupa mucho espacio?

El archivo JSON solo almacena información pública esencial: ID de entradas, títulos de entradas, enlaces permanentes sin prefijos, extractos de contenido simplificados (las primeras 100 palabras) y términos de taxonomía. Está muy comprimido y se le ha eliminado el marcado innecesario para que el tamaño del archivo sea mínimo.

¿Qué pasa si desinstalo el plugin?

Por defecto, el archivo search-es.json generado se guarda en la carpeta «uploads» para evitar la eliminación accidental de datos. No obstante, puedes activar la opción «Limpiar datos al desinstalar» en los ajustes del plugin para que, al desinstalarlo, se borre automáticamente el directorio correspondiente y se borren todos los ajustes.

Reseñas

No hay valoraciones para este plugin.

Colaboradores y desarrolladores

«JRMora JSON Search» es un software de código abierto. Las siguientes personas han colaborado con este plugin.

Colaboradores

«JRMora JSON Search» está traducido en 1 idioma. Gracias a los traductores por sus contribuciones.

Traduce «JRMora JSON Search» a tu idioma.

¿Interesado en el desarrollo?

Revisa el código , echa un vistazo al repositorio SVN o suscríbete al registro de desarrollo por RSS.

Registro de cambios

1.0.0

  • Lanzamiento oficial inicial.
  • Compilación automática de índices JSON al guardar y borrar entradas.
  • Interceptación nativa de consultas de búsqueda mediante la eliminación de la cláusula SQL LIKE.
  • Normalización integrada de cadenas para signos diacríticos y coincidencia sin tener en cuenta los acentos.
  • Se ha añadido compatibilidad con el filtrado por idiomas de Polylang.
  • Se ha añadido un banner y un shorcode opcionales para el contador de tiempo de ejecución y resultados.
  • Se ha añadido la opción de reindexación manual en el área de administración de WordPress.