留言板

Integrar Liferay 6.1.x con SOLR (PASO A PASO)

thumbnail
Sergio Romero Zayas,修改在10 年前。

Integrar Liferay 6.1.x con SOLR (PASO A PASO)

Regular Member 帖子: 151 加入日期: 08-4-14 最近的帖子
Tras pelearme muchísimo con Lucene, cosa que hace insufrible el hacer nada decente en nuestro adorado idioma castellano... la única solución que veo es poner SOLR. Decir que en casi todos los proyectos que he ido haciendo con Liferay 6.0.x y 6.1x he intentado montarlos con SOLR, porque te olvidas de muchas cosas como los Analyzer, etc.

Como habréis leído u oído en webinars, conferencias, etc. SOLR es un Lucene con vitaminas, básicamente se ha llevado lucene a otra dimensión donde su funcionamiento de indexado, rapidez y versatilidad explota (en el buen sentido de la palabra, explota ;) )

Para facilitar la labor a muchos, y para que esta información exista en castellano voy a hacer un tutorial o guía de los pasos necesarios para integrar Liferay y SOLR. Vamos al lío!

Pasos para instalar SOLR y configurarlo en tomcat.

Paso 1.
Descargar apache-solr 1.3.0 y apache tomcat.

Paso 2.
El siguiente paso sería, crear un directorio por ejemplo "solr_tomcat". A su vez, dentro de este crear un directorio llamado "solr_server".
La ruta quedaría C:/Proyectos/solr_tomcat/solr_server

Paso 3.
Descomprimir apache-solr-1.3.0.zip y apache-tomcat-6.0.37-windows-x64.zip en el directorio "solr_server".

Paso 4.
Copiar apache-solr-1.3.0.war desde "C:\Proyectos\solr_tomcat\solr_server\apache-solr-1.3.0\dist" y pegar en "C:\Proyectos\solr_tomcat\solr_server\apache-solr-1.3.0\example\solr"

Paso 5.

Abrir el fichero "solrconfig.xml" desde "C:\Proyectos\solr_tomcat\solr_server\apache-solr-1.3.0\example\solr\conf".
Ahora reemplazamos la etiqueta <datadir> y le indicamos donde estará nuestro data.

<datadir>${solr.data.dir:C:\Proyectos\solr_tomcat\solr_server\apache-solr-1.3.0\example\solr\data}</datadir>


Paso 6.

Crear el fichero "solr.xml" en "C:\Proyectos\solr_tomcat\solr_server\apache-tomcat-6.0.37\conf\Catalina\localhost" y pegar en su interior el siguiente código:

<!--?xml version="1.0" encoding="utf-8"?-->

<context docbase="C:\Proyectos\solr_tomcat\solr_server\apache-solr-1.3.0\example\solr\apache-solr-1.3.0.war" debug="0" crosscontext="true">

    <environment name="solr/home" type="java.lang.String" value="C:\Proyectos\solr_tomcat\solr_server\apache-solr-1.3.0\example\solr" override="true" />

</context>


Paso 7.

Copiar "solr.war" desde "C:\Proyectos\solr_tomcat\solr_server\apache-solr-1.3.0\example\webapps" y pegar en "C:\Proyectos\solr_tomcat\solr_server\apache-tomcat-6.0.37\webapps".

Paso 8.
Modificar los puertos en el fichero server.xml para que no se pisen con los del tomcat de Liferay.

Paso 9.
Iniciar tomcat para verificar el funcionamiento de todo.


Configurar el Plugin de SOLR para Liferay.

Paso 1
Descargar el plugin de SOLR para la versión de Liferay que estemos usando. En mi caso estoy usando Liferay 6.1.1 GA2. Para ello acceder al Marketplace de Liferay buscar el plugin de SOLR y descargarlo.

Paso 2
A continuación, copiar el fichero .lpkg descargado a la carpeta deploy de nuestro Tomcat-Liferay. Esperar a que se despliegue.

Aquí hago un inciso. Tras descargarte el lpkg y hacer deploy, es muy posible que obtengas un error en el despliegue, similar al siguiente:

ERROR [pool-2-thread-2][PortletApplicationContext:145] org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Bean class [com.liferay.portal.spring.context.PortletBeanFactoryPostProcessor] not found Offending resource: ServletContext resource [/WEB-INF/classes/META-INF/solr-spring.xml]

Si te sucede esto, puede que te funcione haciendo el despliegue de forma independiente. Es decir, es descomprimir mediante 7zip o winrar el lpkg, y hacer deploy por separado, primero del "portal-compat-hook-6.1.1.1-ce-ga3-20130821151823748.war" y después el de solr "solr-web-6.1.1.3-ce-ga3-20130821151823748.war" a veces esto lo soluciona.

Paso 3
Paramos los tomcat tanto de Liferay como de SOLR

Paso 4
Modificamos el fichero solr-spring.xml ubicado en "C:\MiLiferay611GA2\tomcat-7.0.27\webapps\solr-web\WEB-INF\classes\META-INF\".
Realizamos los ajustes del tomcat-solr.


<bean id="com.liferay.portal.search.solr.server.BasicAuthSolrServer" class="com.liferay.portal.search.solr.server.BasicAuthSolrServer">
	<constructor-arg type="java.lang.String" value="http://localhost:8585/solr" />
</bean>


Paso 5

Copiar el fichero "schema.xml" desde "C:\MiLiferay611GA2\tomcat-7.0.27\webapps\solr-web\WEB-INF\conf" hacia la ruta "C:\Proyectos\solr_tomcat\solr_server\apache-solr-1.3.0\example\solr\conf"

Paso 6

Tras todo esto solo queda iniciar y rezar para que te funcione a la primera.

Como nota añadir la fuente de la que me he basado para hacer este manual. Del blog de rehan-pathan y agradecerle su post desde estas líneas.

Para lograrlo tuve que hacerlo varias veces, creo que en la 6.0.x era más sencillo la integración con Solr. Lo ideal sería que viniera integrado out-of-the-box, pero eso ya no sabemos si lo harán alguna vez o habrá que esperar a Liferay 6.4 o 6.5.
Jorge García,修改在9 年前。

RE: Integrar Liferay 6.1.x con SOLR (PASO A PASO)

New Member 帖子: 12 加入日期: 12-5-11 最近的帖子
Buenos días Sergio.

Esta versión de solr serviría para liferay 6.2?

Es que por más que busco no encuentro en ningún sitio que versión de solr es la recomendada para liferay 6.2 y la última versión en la página de solr tiene una estructura de directorios bastante distinta a la que mencionas en este tutorial.

Gracias de antemano.

Un saludo.
thumbnail
Sergio Romero Zayas,修改在9 年前。

RE: Integrar Liferay 6.1.x con SOLR (PASO A PASO)

Regular Member 帖子: 151 加入日期: 08-4-14 最近的帖子
No tengo excesivo tiempo, pero coincidiendo que estoy instalando uno en el curro os comparto un enlace a un tuto que he encontrado (en inglés) bastante decente. Que actualiza la parte de configuración de Liferay y Solr.

https://www.permeance.com.au/web/peter.svehla/home/-/blogs/liferay-solr-integration

Explica algunos pasos que difieren algo de como se hacía en la 6.1, espero que ayude a alguien que ande perdido por ahí!
Jorge García,修改在9 年前。

RE: Integrar Liferay 6.1.x con SOLR (PASO A PASO)

New Member 帖子: 12 加入日期: 12-5-11 最近的帖子
Muchas gracias Sergio.

Al final instalé un solr 4.2.0. Buscaré porque creo que apunté todos los pasos y los pondré aquí por si a alguien en el futuro le sirve como referencia.

Saludos!.