2016-06-03 5 views
0

Ich habe erfolgreich ein benutzerdefiniertes Formular zur erweiterten Suchoberfläche in Alfresco hinzugefügt, aber ich stehe vor einem Problem. Hier ist meine individuelle Form (search-config-custom.xml):Verknüpfen Sie mehrere Eigenschaften in der erweiterten Suche in Alfresco

<config evaluator="model-type" condition="cv:document"> 
    <forms> 
     <form id="search"> 
     <field-visibility> 
      <show id="cv:appl_name" /> 
      <show id="cv:appl_surn" /> 
      <show id="cv:appl_phone" /> 
      <show id="cv:appl_lang_1" /> 
      <show id="cv:appl_level_1" /> 
      <show id="cv:appl_lang_2" /> 
      <show id="cv:appl_level_2" /> 
      <show id="cv:appl_lang_3" /> 
      <show id="cv:appl_level_3" /> 
     </field-visibility> 
     </form> 
    </forms> 
</config> 

Die Form ist im Grunde die Abfrage Informationen über Bewerber. Bewerber können in ihrem Profil bis zu drei Fremdsprachen eingeben und ihnen ein bestimmtes Sprachniveau zuweisen.

Nun, hier ist das Problem: Nehmen wir an, ein Personalvermittler möchte Kandidaten mit einem hohen Spanischniveau suchen. Da ich jetzt mein Formular habe, müssten sie "Spanisch" in den drei Sprachfeldern eingeben, um zuverlässige Ergebnisse zu erhalten, da es vorher nicht bekannt ist, in welcher Reihenfolge die Kandidaten ihre Sprachen eingegeben haben.

Also, ich bin auf der Suche nach einer Möglichkeit, ein Feld zu haben, das automatisch über die verschiedenen Sprachfelder suchen kann, so dass ich "Sprache 1", "Sprache 2" und "Sprache 3" haben kann haben Sie einfach "Sprachen" als ein einzelnes Suchfeld. Dann sollten die Sprachgebiete mit ihren respektierten Ebenen in Verbindung gebracht werden, und ich weiß wirklich nicht, wie ich das machen soll.

Hier ist das Content-Modell des benutzerdefinierte Suchformular abfragt:

<types> 
    <type name="cv:document"> 
     <title>Job Application</title> 
     <parent>cm:content</parent> 

     <properties> 
     <property name="cv:appl_name"> 
      <title>Applicant's first name</title> 
      <type>d:text</type> 
     </property> 
     <property name="cv:appl_surn"> 
      <title>Applicant's last name</title> 
      <type>d:text</type> 
     </property> 
      <property name="cv:appl_phone"> 
      <title>Applicant's phone number</title> 
     <type>d:text</type> 
     </property> 
      <property name="cv:appl_lang_1"> 
      <title>Language 1</title> 
     <type>d:text</type> 
     </property> 
     <property name="cv:appl_level_1"> 
      <title>Level for Language 1</title> 
      <type>d:text</type> 
     </property> 
     <property name="cv:appl_level_2"> 
      <title>Level for Language 2</title> 
      <type>d:text</type> 
     </property> 
     <property name="cv:appl_level_3"> 
      <title>Level for Language 3</title> 
      <type>d:text</type> 
     </property>   
     </properties> 
    </type> 
</types> 

Ich bin mit Alfresco 5.0.0.

Antwort

0

Sie könnten Ihr SOLR-Schema bearbeiten, um ein neues SOLR-Feld hinzuzufügen, das mit allen Sprachen gefüllt wäre. Dann würden Sie gegen dieses einzelne Feld abfragen.

Zum Beispiel.

<field name="all" type="text___" indexed="true" omitNorms="false" stored="false" multiValued="true" /> 
<copyField source="*" dest="all" />