Cómo integrar WordPress con ElasticSearch

WordPress está impulsando más de 70 millones de sitios web en Internet. Es uno de los mejores software de gestión de contenido y evoluciona con cada actualización de versión. Sin embargo, hay un problema que no se aborda correctamente y, por supuesto, existe una razón técnica válida para ello, es la búsqueda .

Personalmente, creo que la búsqueda de WordPress no es la mejor característica y se puede mejorar mediante la introducción de tecnologías que están probadas para realizar búsquedas. Y creo que los chicos de WordPress.com piensan de manera similar, esta es la razón por la que WordPress.com usa ElasticSearch para realizar la búsqueda por facetas.

Haga clic aquí para leer la referencia de ElasticSearch en WordPress.com

En este tutorial, aprenderemos cómo integrar ElasticSearch en un sitio web / blog autohospedado de WordPress para que la búsqueda de WordPress sea increíble.

El problema

Esta pregunta puede surgir en su mente.

“¿Cuál es el problema real? ¿Por qué tenemos que resolverlo? ” .

Esa es una pregunta obvia y debe abordarse adecuadamente. Aquí hay algunas razones por las que es necesario mejorar.

  • WordPress utiliza una consulta LIKE simple sobre el título y el contenido de las publicaciones para buscar.
  • Las publicaciones coincidentes se ordenan según la fecha en que se publican en lugar de la relevancia de la palabra clave que busca el usuario.
  • No es una búsqueda.

Creo que el último punto lo cubre todo, sí, no es una búsqueda y debe ser reemplazado por una lógica de búsqueda de alto rendimiento. No me culpes por la palabra dura, WordPress.com (versión paga de WordPress) también lo cree.

La solución

MySQL no está diseñado para búsquedas y esa es una de las razones por las que el equipo de WordPress no puede mejorar la lógica de búsqueda. Estoy seguro de que hay algunas formas de mejorar MySQL para adoptar la función de búsqueda por facetas, pero no es óptima y se recomienda ampliamente.

¿Asi que que hacemos? utilice la base de datos que está destinada a la búsqueda. Llega “ElasticSearch”

Presentamos ElasticSearch

ElasticSearch es un software de motor de búsqueda RESTful distribuido y rápido diseñado para búsquedas y análisis. Está basado en Apache Lucene y escrito en Java.

Puede descargar ElasticSearch y girarlo en el sistema local en unos minutos (solo si Java está instalado). Obtenga la última versión de ElasticSearch desde aquí .

Para ejecutar ElasticSearch, cambie a la carpeta bin del directorio ElasticSearch y ejecute este comando.

./elasticsearch

En Windows, haga clic en .bat o ejecútelo usando el símbolo del sistema.

elasticsearch.bat

Una vez que ElasticSearch se esté ejecutando, apunte su navegador a localhost: 9002 y debería ver una pantalla similar a la que se muestra a continuación.

¡ElasticSearch se está ejecutando! Fácil como un pastel.

Integrando WordPress con ElasticSearch

Para integrar WordPress con ElasticSearch, necesitamos lo siguiente:

  1. ElasticSearch ejecutándose en el servidor.
  2. Indexación de todas las publicaciones del sitio web actual en ElasticSearch.
  3. Asegurándonos de que cada vez que se publica una nueva publicación la indexamos en ElasticSearch.
  4. Cambiar la búsqueda de WordPress de MySQL a ElasticSearch.

Podemos realizar los pasos 2 a 4 utilizando el complemento de WordPress creado por personas increíbles de código abierto. Sin embargo, para el paso uno, necesitamos instalar y habilitar ElasticSearch en algún servidor.

Necesitamos hacer una elección aquí, puede instalar ElasticSearch en el mismo servidor donde se está ejecutando WordPress o instalarlo nuevo en un servidor gratuito / pago.

Sin embargo, los pasos de instalación no serán muy diferentes independientemente de la ubicación del servidor.

Voy a cubrir la instalación de ElasticSearch en OpenShift Server (gratis).

Instalación de ElasticSearch en OpenShift

OpenShift es una aplicación PaaS (plataforma como servicio) en la nube pública. Permiten 3 servidores gratuitos con 1 GB de almacenamiento que puede utilizar para alojar cualquier aplicación.

Vamos a utilizar la cuenta gratuita para alojar nuestra instancia de ElasticSearch.

Siga los pasos que se enumeran a continuación para instalar ElasticSearch en OpenShift:

Paso 1: Crea una cuenta en Openshift

Haga clic aquí para visitar la pantalla de registro del sitio web de OpenShift. Puede usar su cuenta de Github para registrarse rápidamente.

Paso 2: crear una nueva aplicación

Haga clic aquí para ir a la pantalla de aplicación de OpenShift.

Haga clic en Agregar aplicación para crear una nueva aplicación.

En la siguiente pantalla, OpenShift le pide que elija la aplicación de su elección. OpenShift tiene una variedad de aplicaciones de instalación con un solo clic listas para usar.

Tienes dos opciones aquí:

  1. Instale ElasticSearch con un instalador de un clic
  2. Instale ElasticSearch manualmente usando DIY Server

Explicaré la opción número uno, ya que nos ahorrará tiempo. Usando ambas opciones, terminamos teniendo ElasticSearch en el servidor.

En la pantalla de la aplicación, busque ‘Elastic’ como se muestra a continuación.

Haga clic en la aplicación ElasticSearch y OpenShift lo llevará a la pantalla de configuración.

Aquí está la configuración de muestra. Cámbielo en consecuencia según sus necesidades.

¡Es importante elegir ‘Escalar con tráfico web’!

Haga clic en el botón ‘Crear aplicación’ y espere uno o dos minutos.

Una vez que se crea la aplicación, visite la página de la Aplicación y debería ver su Gear en la lista y funcionando.

Visite la URL mencionada por usted en la pantalla de configuración para verificar el estado de funcionamiento. Debería ver algo como esto, como se muestra a continuación.

¡Felicidades! ¡ElasticSearch está alojado y funcionando!

Ahora, necesitamos integrar nuestro sitio de WordPress con ElasticSearch.

Configuración de WordPress con ElasticSearch

Configurar la búsqueda de WordPress para usar ElasticSearch es realmente fácil y directo. Gracias a la increíble comunidad de contribuciones de WordPress por proporcionar complementos para diversas tareas. El registro de complementos de WordPress también tiene un complemento para configurar ElasticSearch.

Vaya a la página de complementos en el sitio de WordPress y busque “fantástica búsqueda elástica” .

Instale y active el complemento y debería ver la configuración de ElasticSearch en la pantalla de administración de WordPress.

Tiene las siguientes opciones:

  • Integración con WordPress
  • Configuración del servidor
  • Indexación de contenido
  • Mapeo de campos
  • Puntuación de resultados
  • Administrar índice

Primero veremos cómo configurar ElasticSearch Server con WordPress. Haga clic en la pestaña ‘Configuración del servidor’ y debería ver una pantalla similar a la que se muestra a continuación.

Cambie el nombre del servidor y del índice.

Integración de WordPress

En esta sección, podemos habilitar / deshabilitar ElasticSearch para ser utilizado en WordPress y también elegir qué categorías nos gustaría indexar en ElasticSearch.

Indexación de contenido

En esta sección, puede elegir qué campos desea indexar en ElasticSearch.
Recomendaría al menos seguir 3 campos.

  • Publicar Contenido
  • título de la entrada
  • tipo de mensaje

Puntuación de resultados

En esta sección configuramos la puntuación del resultado.
ElasticSearch utiliza la puntuación (precedencia numérica) para filtrar los resultados. Aquí está la captura de pantalla de mi puntuación de resultados.

La cantidad de confusión se refiere a la cantidad de caracteres que se pueden intercambiar para que coincidan con las palabras. Por ejemplo: si busqué Nods, entonces Noda todavía se considera una coincidencia: Nod (e) -> Nod (a).

Cuanto menor sea el número, mejor será el rendimiento. No establezca esto demasiado alto.

Le di prioridad a post_title más que a post_content. Esto significa que cuando busca algo y ElasticSearch encuentra que coincide, primero buscará el título de la publicación seguido del contenido.

Administrar índice

Esta es la sección más importante.
Aquí haremos la indexación de las publicaciones actuales de WordPress en ElasticSearch. Haga clic en el botón ‘Volver a indexar datos’ cada vez que realice algún cambio en la puntuación o el mapeo de campos.

Por primera vez, indexará todos sus datos de WordPress en ElasticSearch. Este complemento también se encargará de la indexación continua de datos, como la publicación o eliminación de una nueva publicación, luego ElasticSearch será notificado sobre esos cambios.

Ahora siga adelante y haga una búsqueda, para conocer la diferencia exacta, desactive el complemento y busque algo con errores ortográficos o palabras clave borrosas. Registre el resultado y luego active el complemento y realice la misma búsqueda. Notarás la diferencia de resultado.

Conclusión

Hicimos la búsqueda de WordPress más precisa y relevante siguiendo estos sencillos pasos. Recomiendo a todos los blogueros / especialistas en marketing que estén dispuestos a mejorar su búsqueda en el sitio web que le den una oportunidad a ElasticSearch.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *