AnsweredAssumed Answered

Complex (compound) property

Question asked by fguillaume on May 30, 2010
Hi,

We have the following problem: the user wants to store multiple structured metadata on one node. Consider the following example (property in bold):

Name:   BigCar   
High Resolution:   TRUE   
Alternative names:   
•   Super Car
•   Great Car
•   Car++
Publication:   
•   The Times   24.05.2010
•   The Times   25.05.2010
•   The Times   28.05.2010
•   The Guardian   23.05.2010
•   The Sun   24.05.2010
•   Daily Mail   24.05.2010
•   Daily news   24.05.2010
•   News of the world   24.05.2010

There is:
•   a simple value: name
•   a multiple value: alternatve names
•   and a complex value (inexistant in Alfresco!!): Publications

The user needs to have all the values on the same node, because he wants to be able to do mixed queries like: "Find all the advertisement published in the times on the 25th May and which are high resolution and whose name contains Car".

We first thought of doing a node with children nodes (using child-assocs) for the publications metadata but this solution presented 2 major problems: one was that to do a combined search we needed to do TWO queries and then "manually" filter them for intersection (for instance); the second problem was that, as there are actually several multiple structure field per node, we had a combinatorial explosion.

The only solution we can see now is to define our own metadata type, with something like:
     <data-type name="my:specialtype">
         <analyser-class>org.someco.search.impl.lucene.analysis.SpecialTypeAnalyser</analyser-class>
         <java-class>java.lang.MySpecialType</java-class>
      </data-type>

and store the data as serialised string, for instance:
       <property name="my:publication">
            <type>my:specialtype</type>
            <multiple>true</multiple>
         </property>

The questions are:
•   Would this be possible (a bit like d:content) with Alfresco?
•   How would we go to be able to actually query on the structured data with something like
@my\:publication:j="The Times"&d=[12-05-2010 TO 29-05-2010]
(whatever the format!)?
•   Would it required something more than the data analyser?

Thank you very much for your help in this matter.

Outcomes