Open IT Experts for Enterprise

Liferay mantis y OpenSearch

Gustavo Fernández
Gustavo Fernández


Una de las características que puden resultar interesantes a la
hora de integrar servicios dentro de un gestor de portales es la
posibilidad de integrar las búsquedas de los servicios ofrecidos por
el portal en un buscador único.
Para cubrir esta necesidad
liferay propone el uso de OpenSearch.

Como ejemplo de implementación de esta característica vamos a
utilizar un portlet de gestión de incidencia desarrollado internamente
por www.zylk.net. Este portlet se
utiliza a nivel interno en algunos proyectos y a nivel público en la
página de sinadura, para que los
usuarios/clientes puedan reportar incidencias desde un interfaz web
sin tener que darles acceso a la herramienta de gestión de
incidencias. Es un portlet que utilizando la capa de servicios web 
ofrecida por el gestor de
incidencias mantis
sirve para dar de alta incidencias en propio
gestor de incidencias.
El problemas del portlet es que solo
permite la busqueda de las incidencias por id y desde el buscador
implementado en el propio portlet.
Para solventar este tema
podemos configurar el descriptor de despliegue del portlet
(liferay-portlet.xml) y añadirle la siguiente opción:

       <open-search-class>net.zylk.search.MantisIssuerSearcher</open-search-class>

Que es una clase que implementa la interfaz

       public class MantisIssuerSearcher implements com.liferay.portal.kernel.search.OpenSearch

Con esto al desplegar el portlet en nuestro liferay y hacer uso
del portlet de búsqueda genérico, se añadirá al resultado de la
busqueda una nuevo aparado que contendrá los resultados devueltos por
la implementación de la clase.

Otra característica interesante siguiendo esta linea es la de
implementar la interfaz

com.liferay.portal.kernel.search.Indexer

Para que el motor de indexación del portal (lucene o solr) indexe los contenidos
dados de alta desde este portlet, pero eso lo dejaremos para otro artículo…

Más entradas

Deja un comentario

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