Una de las principales propuestas de DSpace 1.7 fue la funcionalidad de búsquedas Discovery. Desarrollado, y cedido a la comunidad DSpace, por la empresa AtMire, el sistema de búsquedas por facetas (faceted search) es de indudable atractivo para las nuevas instalaciones y posiblemente imprescindible en instalaciones con un número de items elevado, pues las facilidades de búsqueda en esos entornos necesitan ser «reforzadas».
Faceted search, also called faceted navigation or faceted browsing, is a technique for accessing information organized according to a faceted classification system, allowing users to explore a collection of information by applying multiple filters (wikipedia)
Para poder manejar correctamente el nuevo sistema de búsquedas, se distribuye conjuntamente con la release, el tema Mirage (y ahora debe quedar claro que hablamos de XMLUI, no de JSPUI) como complemento visual de la funcionalidad Discovery.
En este post va a proceder a explicar como se hace para activar Mirage y Discovery en nuestro Dspace 1.7 o 1.8.
ACTIVACION DE MIRAGE
Tendremos que ir al fichero xmlui.xconf ubicado en [dspace-instalación]/conf/xmlui.xconf
Ahí vamos a quitar los comentarios referentes a la linea
<!–<theme name=»Atmire Mirage Theme» regex=».*» path=»Mirage/» />–>
Por lo que nos quedaría de la siguiente forma
<theme name=»Atmire Mirage Theme» regex=».*» path=»Mirage/» />
Una vez hecho esto, debemos comentar el tema que se estuviese usando, normalmente el tema Reference, es decir:
<theme name=»Default Reference Theme» regex=».*» path=»Reference/» />
y añadirle los comentarios, dejándola así.
<!– <theme name=»Default Reference Theme» regex=».*» path=»Reference/» /> –>
Por ahora no hemos hecho mas que cambiar un tema por otro. Llega ahora la hora de la verdad, activar el faceted search.
ACTIVACIÓN DE DISCOVERY
Activar Discovery supone en primer lugar sustituir las transformaciones (aspects) relacionadas con la búsqueda de XMLUI por las nuevas transformaciones que supone Discovery. Para ello, en el fichero xmlui.xconf ubicado en la ruta [dspace-instalación]/conf/xmlui.xconf tenemos que desactivar la linea referente al uso del SearchArtifact, y activar la correspondiente al Discovery. Así, hay que comentar la linea siguiente:
<aspect name=»Searching Artifacts» path=»resource://aspects/SearchArtifacts/» />
quedando la línea de la siguiente forma
<!–<aspect name=»Searching Artifacts» path=»resource://aspects/SearchArtifacts/» />–>
y siendo consecuentes, descomentar la línea de Discovery:
<!–<aspect name=»Discovery» path=»resource://aspects/Discovery/» />–>
quedando la línea de la siguiente forma
<aspect name=»Discovery» path=»resource://aspects/Discovery/» />
El siguiente paso que tenemos que modificar el fichero dspace.cfg, cambiando un par de parámetros:
event.dispatcher.default.consumers
y añadirle a la derecha el parámetro discovery quedando de la siguiente forma.
event.dispatcher.default.consumers = search, browse, discovery, eperson, harvester
La siguiente línea a tocar es la siguiente:
recent.submissions.count
En este caso pondremos el parámetro a cero quedando así la línea:
recent.submissions.count=0
Ya estamos finalizando. El último fichero que debemos comprobar es el dspace-sorl-search.cfg, ubicado en la misma carpeta que los anteriores ficheros. Simplemente chequear que la dirección de nuestro dspace/solr coincide con la especificada en el fichero ¿aún no habíamos dicho que Discovery se apoya en SOLR?… Aseguraros que SOLR está desplegado y funcionando en vuestro Tomcat.
Bien, buscamos la línea:
solr.search.server = http://localhost:8080/solr/search
y ahí debemos comprobar que el puerto de acceso es correcto, lo cambiamos al nuestro, 8180, 8888, el que usemos:
solr.search.server = http://localhost:8180/solr/search
Cuidado, que hay una serie de problemas reportados en JIRA respecto el uso de 127.0.0.1 y el uso de localhost, por lo que quizá se tenga que tantear. (CORREGIDO gracias a la aportación de Javier, de la Universidad de Piura, Perú)
Una vez editados estos ficheros, hay que reiniciar el tomcat para que se apliquen los cambios y ejecutar en línea de comandos el programa update-discovery-index para que se actualicen los índices del Discovery.
[dspace-instalación]/bin/dspace update-discovery-index
Una vez ejecutada, podemos ver los cambios en nuestro Dspace, un magnífico DSPace con búsqueda por facetas:
Ah, un último punto… las etiquetas/textos que usa Discovery no están traducidas, pues no se incluyen en el messages-es.xml del núcleo de Dspace. La opción más razonable es localizar su messages.xml en las fuentes de dspace-discovery y copiarlas, es decir añadirlas, al messages_es.xml que usemos de forma habitual (una vez traducidas, claro..)
Suerte (y gracias a Atmire…)
Hola, logré activar Discovery (creo, la página de búsqueda ya cambió) pero al correr el comando ./dspace update-discovery-index obtengo un error:
Exception: Error executing query
org.dspace.discovery.SearchServiceException: Error executing query
at org.dspace.discovery.SolrServiceImpl.cleanIndex(SolrServiceImpl.java:376)
…
Si intento acceder a Solr con links o wget obtengo un error 500.
Desde el navegador:
java.net.UnknownHostException: dspace.***.**: dspace.udep.pe
java.net.InetAddress.getLocalHost(InetAddress.java:1360)
org.dspace.solr.filters.LocalHostRestrictionFilter.doFilter(LocalHostRestrictionFilter.java:48)
Espero me puedas ayudar. Gracias!
Hola Javier,
Te deberías centrar en primer lugar en ver si SOLR está realmente desplegado y accesible. Comprueba si el directorio /solr está creado en webapps y si tomcat vé ese directorio, bien porque hayas copiado el directorio de dspace, bien porque hayas redirigido tomcat al webapps de dspace.
Comprueba luego la configuración adecuada en solr.search.server en el fichero dspace-sorl-search.cfg, que debe ser de la forma localhost:puerto/solr/search/ o 127.0.0.1:puerto/solr/search (CORREGIMOS EL POST, evidentemente, y gracias al comentario de Javier, corregimos el gazapo).
Por el mensaje, da la impresión que estás intentando acceder con una url tipo dspace.udep.pe, y el SOLR te impedirá el acceso desde una máquina que no sea localhost, pues aplica la directiva: org.dspace.solr.filters.LocalHostRestrictionFilter.doFilter. Por ello, ten en cuenta que SOLR no se puede acceder desde fuera de la propia máquina, por motivos de integridad y acceso al índice.
Si todo está bien, deberías poder acceder a localhost:puerto/solr/ o 127.0.0.1:puerto/solr viendo la página de administración de SOLR.
Un punto adicional, el update-discovery-index solo te funcionará con Tomcat arrancado…
y Suerte en la Universidad de Piura..
Emilio
Gracias por la respuesta.
El problema estaba en que en dspace.cfg habia puesto locahost cuando el nombre de la máquina era otro, por eso la excepción.
Hola: te comento que con estoy trabajando con DSpace 3.1 con tus pasos (en el pasado) habia logrado hacer funcionar el Discovery en la 1.8, ahora no veo el programa update-discovery-index
Debo recompilar?
Desde ya muchas gracias!
Hola Gladys
¿Dónde no lo ves?
es una opción del «comando» dspace… ejecuta (dspace)/bin/dspace desde línea de comando y te dará una lista de todas las opciones. Entre ellas debería estar update-discovery-index..
Emilio
Hola
Veo que contestas a los mensajes aunque el post sea antiguo. El post es de hace un año, pero acabo de ponerme con el Discovery y estoy probándolo. Ya comenté contigo los problemas con los diacríticos y Lucene, y lo explicaste fenomenal en un post. Espero que hayas investigado con Discovery y puedas ayudarme. Ahora tengo 2 preguntas:
– En Lucene se podía configurar el operador para la búsqueda con el parámetro en dspace.cfg
search.operator = AND ( o OR)
¿En Discovery se puede configurar?
– Cómo conseguimos en Discovery el efecto de ISOLatin1AccentFilter (ahora ASCIIFoldingFilter) de Lucene para eliminar diacríticos?
Enhorabuena por el blog, me habéis ayudado mucho!
Muchas gracias
Hola.. Gracias por los posts publicados. Me han sido de mucha utilidad.
Tengo la misma inquietud que Ximo ¿Cómo implementar el ISOLatin1AccentFilter en el Discovery?
Saludos y gracias nuevamente
Estimado Claudio, nos comprometimos con Ximo a escribir un post rápido al respecto. Espero tener tiempo en breves fechas
Gracias por su interés
Emilio
gracias a ustedes por compartir sus conocimientos que me han sido muy útiles!
saludos!