ref #7745 fix failing freetext search in facts freetext search
[cdmlib.git] / cdmlib-model / src / main / java / eu / etaxonomy / cdm / hibernate / search / DescriptionBaseClassBridge.java
index a6367403afc6db8a979fff9a2f5894b65a856276..c963193eb929421c124f696e01f67f6d373ef531 100644 (file)
@@ -17,7 +17,7 @@ import org.hibernate.search.bridge.LuceneOptions;
 
 import eu.etaxonomy.cdm.model.description.TaxonDescription;
 import eu.etaxonomy.cdm.model.description.TaxonNameDescription;
-import eu.etaxonomy.cdm.model.name.TaxonNameBase;
+import eu.etaxonomy.cdm.model.name.TaxonName;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 
@@ -34,19 +34,11 @@ import eu.etaxonomy.cdm.model.taxon.TaxonNode;
  * registered in the <code>propertiesMetdata</code>
  *
  * @author Andreas Kohlbecker
- * @date Dec 19, 2011
+ * @since Dec 19, 2011
  *
  */
 public class DescriptionBaseClassBridge extends AbstractClassBridge {
 
-
-    /*
-     * (non-Javadoc)
-     *
-     * @see org.hibernate.search.bridge.FieldBridge#set(java.lang.String,
-     * java.lang.Object, org.apache.lucene.document.Document,
-     * org.hibernate.search.bridge.LuceneOptions)
-     */
     @Override
     public void set(String name, Object entity, Document document, LuceneOptions luceneOptions) {
 
@@ -75,14 +67,22 @@ public class DescriptionBaseClassBridge extends AbstractClassBridge {
 
                     for(TaxonNode node : taxon.getTaxonNodes()){
                         if(node.getClassification() != null){
-                            idFieldBridge.set(name + "taxon.taxonNodes.classification.id", node.getClassification().getId(), document, idFieldOptions);
+                            idFieldBridge.set(name + "taxon.taxonNodes.classification.id",
+                                    node.getClassification().getId(), document, idFieldOptions);
+                        }
+                        if(node.treeIndex() != null){
+                            Field treeIndexField = new StringField("inDescription.taxon.taxonNodes.treeIndex",
+                                    node.treeIndex(),
+                                    Store.YES
+                                    );
+                            document.add(treeIndexField);
                         }
                     }
                 }
 
             }
             if (entity instanceof TaxonNameDescription) {
-                TaxonNameBase taxonName = ((TaxonNameDescription) entity).getTaxonName();
+                TaxonName taxonName = ((TaxonNameDescription) entity).getTaxonName();
                 if (taxonName != null) {
                     idFieldBridge.set(name + "taxonName.id", taxonName.getId(), document, idFieldOptions);
                 }