[Tutorial] S.O.S. Lucene: Navegando entre nodos

Buenas.

Cuando tienes que desarrollar con lucene, sobre todo si nunca antes lo has visto, siempre surgen dudas sobre como se deben componer las querys, como lanzarlas para comprobar rápidamente su resultado, querys que uno cree que funciona pero no muestra nada, etc..
Pues bien, hoy os voy ha mostrar una de esas “consolas ocultas de alfresco” de las que ya habló hace un tiempo Toni de la Fuente en su blog, y que creo que en más de una ocasión os podrá salvar la vida (aunque parezca que exagero, realmente hay personas que intentando comprender Lucene se ha llevado buenos dolores de cabeza jaja).

En resumen: Con la consola podrás realizar varias acciones como ejecutar querys rápidamente, ver si algún nodo presenta alguna de sus propiedades corruptas, etc.. Este tutorial no pretende ser una guía de la propia consola pero sí una guía sobre cómo usar la consola, está enfocada a Lucene y sus querys, y que con ella seas capaz de aprender a usarla.

Índice del (mini) tutorial:

1.- Accediendo a la consola
2.- Conociendo la consola
3.- Links de interés.

1.- Accediendo a la consola

Lo primero que tenemos que tener en cuenta es que para acceder a la consola debes ser un usuario con permisos de administrador. Mi ejemplo lo voy a realizar con el usuario admin que tiene por defecto Alfresco.

Pasos a dar para acceder:

  • Accedemos a alfresco (http://IP:PUERTO/alfresco)
  • Acceder con un usuario que tenga permisos de Administrador
  • Pulsar arriba a la derecha sobre el botón “consola de administrador”

  • A continuación debemos clickar sobre “Navegador de Nodos”

  • Para navegar sobre el repositorio y ver los nodos que hay dentro del mismo, pinchamos sobre workspace://SpacesStore

    Os preguntaréis sobre las distintas opciones y para qué sirven, pues bien no son más que Stores de Alfresco pero ¿y qué son Stores? Pues cada Store no es más que un área del repositorio y dentro de cada uno de ellos contienen “X” nodos organizados jerárquicamente. Una vez accedemos a uno de ellos, entratemos siempre en la ráiz del mismo. Por ejemplo: El store de user: es el store encargado de almacenar todos los nodos relativos a los usuarios o el store worspace el relativo a los espacios y lo que cuelgue de él, es decir, como si lanzamos desde Company Home una consulta.Tomadlo como si Alfresco fuera un edicifio de oficinas, los stores fueran las oficinas que hay en cada planta de ese edificio, y dentro de cada oficina están los empleados, lugares de trabajo, etc..

    Por norma general, casi un 80% de los casos, lucene lo utilizamos para buscar información sobre un nodo, o lanzamos una query para que nos devuelva un listado con varios resultados de documentos que hemos subido a nuestro alfresco. Todos estos documentos están sobre el Store “workspace”. Ese será nuestro objetivo en este tutorial, aunque dependiendo de la naturaleza de la consulta que queráis hacer, tendremos que seleccionar un Store u otro según corresponda.

  • Como vamos a trabajar con documentos, pinchamos en workspace://SpacesStore. Lo que nos lleva a la segunda parte del tutorial.

2.- Conociendo la consola

  • Una vez accedamos se nos muestra una ventana similar a esta:

  • Lo primero, seleccionamos el tipo de consulta que vamos a realizar en el desplegable de la izquierda. En nuestro caso “Lucene”:

    Como véis, podemos lanzar consultas de varios tipos: Desde lanzar un noderef para examinar un nodo (por ejemplo si tiene alguna de sus propiedades corruptas), o incluso lanzar una consulta con XPath.
  • Para probar nosotros como funciona, lanzaremos por ejemplo la siguiente query:
    +TYPE:”cm:category” +PATH:”cm:generalclassifiable//*”

    Esta query mostrará un listado con tooodas las categorías que tengas en tu Alfresco.

  • Comprobad que entre la lista, está la categoría “Languages”, si pinchamos sobre ella iremos al nodo y sus propiedades directamente, pero ¿siempre tendremos que buscar el nodo que queremos entre un listado tan grande? ¿No podemos filtrar por nombre? Pues claro que sí, eso será lo siguiente que hagamos.
  • Como nosotros queremos dar un paso más, vamos a buscar el nodo directamente por su nombre. Para ello lanzaremos de nuevo la siguiente query:
    +TYPE:"cm:category" +PATH:"cm:generalclassifiable//*" +@cm:name:"Languages"

    Como véis no tiene más que añadir el +@cm:name:”nombre_que_busquemos”.

  • Pinchad sobre el nombre. Os deberá aparecer algo similar a esta imagen:
  • Pues bien, ahí tenéis las distintas partes de la que se compone un nodo:1) Properties: Las propiedades/metadatos que componen el nodo tales como el nombre, la fecha de creación, etc..
    Estos datos los podéis ver si observáis en la columna de la izquierda, suyo titulo es es Name y valor {http://www.alfresco.org/model/content/1.0}name. Después está el valor que contiene ese metadato, en nuestro caso “Languages”, tipo de metadato, en nuestro caso de tipo “texto”, etc..

    2) Aspects: Los aspectos que tiene ese nodo aplicado.
    3) Permissions: Nos muestra qué permisos tiene asociados el nodo, tanto de grupos como de usuarios.
    4) Sus “hijos”: Dentro de lenguages, encontraremos nodos que dependen de él, como por ejemplo “English”, “Spanish”, etc..
    5) Associations: Tipo de asociaciones que tiene ese nodo.
    6) Parents: Información sobre el nodo del que depende.

A partir de aquí ya conocéis minimamente la herramienta, tanto como para empezar a trastear y bichear por vuestra cuenta. Lo realmente bueno de la misma es poder ejecutar querys directamente, y sobre todo si alguna vez detectáis algún problema con un nodo, podéis explorar con esta consola internamente qué dato está mal o corrupto. Aunque el verdadero potencial se lo iréis sacando a medida que vayáis probando =)

3.- Links de interés

Os dejo una tanda de links que sin duda alguna os servirán de ayuda durante la travesía.

Y esto es todo… Por el momento. Espero que os haya servido de ayuda a la vez que habéis aprendido algo nuevo ;-)

Un saludo a todos y ¡hasta la próxima!

7 pensamientos en “[Tutorial] S.O.S. Lucene: Navegando entre nodos

  1. Cristina Martín

    Claro Rafa, además que es muy interesante de cara a cualquier problema relacionado con nodos (no cargan, corrupción de algunas propiedades, etc..), sobre todo esos en los que te planteas ¿y ahora qué ocurre aquí?

    Y eso que solo me he centrado en la parte de Lucene, pero como puedes ver en la imagen del desplegable puedes acceder a cualquier Store de las que dispone Alfresco para poder indagar “por dentro”.

    En fin, aunque es poco “friendly”, es muy apañado que a fin de cuentas es lo que nos interesa =)

    Un saludo y gracias por el comentario ;)

    Responder

Deja un comentario