26/02/2019 | Javier Jorge Soteras | 577 Visitas

Todo sobre el motor de búsqueda en Liferay 7: Elasticsearch

Liferay y el motor de búsqueda Elasticsearch caminan de la mano desde la versión 7. Fue en esta versión en la que se reemplazó Lucene como motor de búsqueda por defecto del portal para dar paso a Elasticsearch, un motor de búsqueda basado en Lucene con sustanciales mejoras respecto a su predecesor.

Elasticsearch vió la luz a principios del año 2010 y rápidamente ganó popularidad hasta situarse como el referente en cuanto a motores de búsqueda se refiere,  según datos de DB-Engines.

ranking motores de busqueda

 

Este motor de búsqueda basado en tecnología Java ofrece una gran flexibilidad y escalabilidad en entornos distribuidos, que junto al hecho de estar publicado como código abierto bajo las condiciones de la licencia Apache, lo han llevado ser el motor de búsqueda más utilizado en el ámbito empresarial. Viendo la tendencia de la gráfica y las posibilidades que ofrece, no es de extrañar que Liferay apostara por este motor de búsqueda allá por el año 2016, momento del lanzamiento de la versión 7.0 GA1 del portal.

A pesar de que Elasticsearch es el motor de búsqueda por defecto de Liferay y el recomendado por los propios desarrolladores de portales Liferay, también está soportado el uso de Apache Solr.

Apache Solr también está basado en Lucene, como ya explicábamos en nuestra comparativa entre Apache Solr vs Elasticsearch, ambas opciones son válidas y quedará en manos del cliente la elección final, siendo a priori Elasticsearch la opción más adecuada siguiendo las recomendaciones de Liferay.

¿Para qué necesita Liferay un motor de búsqueda?

El uso de tecnología NoSQL, que tan en auge está con la llegada del BigData, viene directamente relacionado con el rendimiento que ésta ofrece respecto a las bases de datos relacionales a la hora de realizar búsquedas.

La verdadera diferencia viene cuando se quieren realizar búsquedas semánticas sobre los contenidos del portal, es decir, implementar un sistema de búsqueda basado en texto. Aquí es donde entra Elasticsearch en la ecuación y Liferay explota las capacidades de este motor para ofrecer un buscador semántico al que se le pueden aplicar filtros y facetas.

Pero el uso de esta tecnología va más allá de las búsquedas de textos, ya que además de realizar búsquedas semánticas hay ocasiones en las que se desea tener una base de datos rápida sobre la cual realizar consultas con tiempos de respuesta inferiores a una base de datos tradicional. Liferay, por ejemplo, hace uso de esta capacidad para mostrar listados de contenidos sin recurrir a la base de datos, a pesar de que este no sea el cometido de un motor de búsqueda como Elasticsearch sino de una base de datos NoSQL más bien.

 

Buscador facetado liferay

Ejemplo de buscador facetado en Liferay

 

Otra de las virtudes de ElasticSearch radica en las búsquedas espaciales o geolocalizadas, una característica muy interesante si se desean filtrar los resultados dependiendo de la localización de los contenidos.

Modos de operación de Elasticsearch

Como ya se ha comentado, Liferay incluye Elasticsearch desde la versión 7. Esto quiere decir que Liferay ya cuenta con una instancia interna de Elasticsearch ejecutándose en la misma instancia de JVM (Java Virtual Machine) sin necesidad de configurar un cluster. A este modo se le llama modo de operación embebido o “embedded”.

El echo de contar con un Elasticsearch configurado y operativo desde la primera vez que se levanta una instancia de Liferay es muy cómodo a la hora de desarrollar un portal, pero está completamente desaconsejado en entornos de producción, ya que la instancia del motor de búsqueda se ejecuta en la misma JVM que el portal y no es la configuración más óptima en cuanto a rendimiento.

Para ello contamos con otro modo de operación conocido como remoto o “remote” en inglés. Al configurar el portal en este modo los contenidos se reindexarán automáticamente en el cluster de Elasticsearch que previamente se habrá tenido que configurar. Desde la configuración del panel de control del portal se deberán modificar las opciones de búsqueda de la configuración del sistema y establecer el modo de operación “remote” para la configuración de ElasticSearch.

configuracion elasticsearch remoto

 

La instancia de Elasticsearch deberá estar configurada a través del fichero elasticsearch.yml para que el nombre del cluster coincida con el nombre indicado en la configuración  de Elasticsearch de Liferay, que por defecto está definido como LiferayElasticsearchCluster.

cluster.name: LiferayElasticsearchCluster

 

Para que Elasticsearch sea compatible con todos los idiomas disponibles en Liferay y los textos de todos los idiomas sean analizados será necesario ejecutar unos comandos para que se instalen los plugins necesarios.

elasticsearch-plugin install analysis-smartcn
elasticsearch-plugin install analysis-stempel
elasticsearch-plugin install analysis-kuromoji
elasticsearch-plugin install analysis-icu

Monitorización del motor de búsqueda Elasticsearch en Liferay

Elasticsearch se puede monitorizar mediante la herramienta llamada Kibana. Esta herramienta que forma parte del Elastic Stack, conjunto de herramientas de código abierto para obtención, análisis y visualización de datos antiguamente denominado como ELK (Elasticsearch, Logstash, Kibana). Kibana se encarga de la visualización de los datos mediante listados y diferentes tipos de gráficas.

 

Si vas a realizar el desarrollo de portal corporativo con Liferay o estás valorando Liferay como cms, contáctanos y nuestro equipo se ocupará de explicarte cómo las funcionalidades de Liferay pueden adaptarse a tu proyecto.

 

Te ayudamos a crear tu portal corporativo con Liferay

Liferay Portal es el líder mundial de soluciones abiertas de portales para empresas utilizando lo último en Java y las tecnologías Web 2.0.

Más que un portal, Liferay es una plataforma para crear aplicaciones y soluciones de negocio efectivas.

¿Te ayudamos?

Comentar

Su dirección de correo electrónico no será publicada.Los campos necesarios están marcados *

*

¡Contacta con nosotros!

¿ALGUNA DUDA?

Llámanos y nuestros expertos realizarán un asesoramiento personalizado sin compromiso

902 87 73 92

SOLICITAR INFORMACIÓN





Afirmo que he leido el aviso legal y acepto la Política de privacidad

Permito el tratamiento de mis datos personales con la finalidad informada