Duda con Lucene Search

cancel
Showing results for 
Search instead for 
Did you mean: 
ruben_arjonilla
Member II

Duda con Lucene Search

Buenos días,

tengo una duda sobre que se puede y que no se puede hacer con una búsqueda lucene.
Pondré un ejemplo, tengo estos 2 tipos, A y B, donde B tiene definida una asociación de documentos de tipo A
<type name="x:a">
   <title>A</title>
   <parent>cm:content</parent>
   <properties>
      <property name="x:campo1">
         <title>campo 1</title>
         <description>Descripción campo 1</description>
         <type>d:text</type>
         <mandatory>false</mandatory>
         <default></default>
      </property>
   </properties>
</type>
<type name="x:b">
   <title>B</title>
   <parent>cm:content</parent>
   <properties>
      <property name="x:campo2">
         <title>campo 2</title>
         <description>Descripción campo 2</description>
         <type>d:text</type>
         <mandatory>false</mandatory>
         <default></default>
      </property>
   </properties>

   <associations>
      <association name="x:asocA">
         <title>Asociaciones con documentos A</title>
         <description>Asociación de documentos del tipo A</description>
         <source>
            <mandatory>false</mandatory>
            <many>true</many>
         </source>
         <target>
            <class>x:a</class>
            <mandatory>false</mandatory>
            <many>true</many>
         </target>
      </association>
   </associations>
</type>

ahora imaginemos que tengo 1 documento A y 2 documentos B
A1.txt
B1.txt –> tiene una asociación con el documento A1.txt
B2.txt –> no tiene ninguna asociación con ningún documento

Se puede buscar que documentos del tipo B tienen asociado el documento A1.txt? siempre partiendo desde que lo único que tengo es el documento A1.txt
O sea, me tendría que devolver el documento B1.txt, que es el que tiene la  asociación con el documento A1.txt
Que debería poner en la lucene search? estoy haciendo pruebas desde el Node Browser, pero no consigo dar con ninguna solución.

Gracias de antemano.
13 Replies
cybermakoki
Member II

Re: Duda con Lucene Search

Bufff… no vas a poder… yo me volví loca y no pude hacerlo… al menos con una búsqueda lucene…
ruben_arjonilla
Member II

Re: Duda con Lucene Search

Ok, gracias por responder.

Yo también me estaba volviendo loco, tendré que crear una regla que cuando se añada la asociación a un documento B, se cree una asociación en el documento A.

Lo dicho, muchas gracias Smiley Happy
cybermakoki
Member II

Re: Duda con Lucene Search

Eso es una buena solución Smiley Happy
ruben_arjonilla
Member II

Re: Duda con Lucene Search

Buenas,
La solución esta de la regla que crea una asociación a 2 bandas me solucionó las cosas a medias, ahora vuelvo a tener la necesidad de realizar la búsqueda de los documentos que tienen asociados un documento en concreto (esta mejor explicado al principio del post).

Si alguien tiene una solución estaré muy agradecido de que me de la respuesta.
Yo he intentado todo lo que he podido, me he leído y releído la wiki del search: http://wiki.alfresco.com/wiki/Search y nada de nada…

Muchas Gracias de antemano
baskeyfield
Member II

Re: Duda con Lucene Search

Buenas,

¿Has comprobado que es lo que almacena realmente Alfresco como metadato association en el nodo B1? Usando el nodebrowser por ejemplo.

No tengo ningún documento de este tipo para poder comprobarlo, pero si por ejemplo lo que almacena en ese metadato a bajo nivel fuese el uuid del nodo A1, podrías lanzar consultas del tipo:

cm:association:2342409-2424-234-23424

La consulta anterior es incorrecta, solo es un ejemplo de concepto. 2342409-2424-234-23424 sería el uuid del nodo A1

Saludos.
baskeyfield
Member II

Re: Duda con Lucene Search

Hola otra vez,

He estado investigando y parece que las asociaciones (las non child association) no se indexan en lucene, por eso no es posible encontrarlas en lucene:

http://forums.alfresco.com/en/viewtopic.php?t=11636

Saludos.
ruben_arjonilla
Member II

Re: Duda con Lucene Search

Muchas gracias por la información.

Es lo que me temía, ya que las asociaciones son como ArrayList, pueden tener mas de 1 nodo asociado, y por tanto no es directo.

Tendré que buscar otra solución.
baskeyfield
Member II

Re: Duda con Lucene Search

¿Cómo se estaba rellenando esa propiedad? Manualmente?

Si es de forma automática desde algún api, podrías crearte un metadato de tipo texto que hiciese la función de la asociación. Grabas el uuid y listo.

Saludos.
ruben_arjonilla
Member II

Re: Duda con Lucene Search

Es una buena idea, pero no siempre es automático, lo tendremos en cuenta de todas maneras.

Muchas gracias por todo