From 2df611a7c36720f3ec1efede7200805225c77e01 Mon Sep 17 00:00:00 2001 From: anttil <anttil> Date: Fri, 17 Jun 2016 07:12:03 +0000 Subject: [PATCH] SSDM-3760: Duplicated Lucene global search fields for data sets SVN: 36698 --- .../shared/dto/DataGlobalSearchBridge.java | 15 +++++++++++++++ .../shared/dto/ExperimentGlobalSearchBridge.java | 9 +++++++++ .../dto/ExternalDataGlobalSearchBridge.java | 9 +++++++++ .../generic/shared/dto/GlobalSearchBridge.java | 6 +++--- .../shared/dto/LinkDataGlobalSearchBridge.java | 9 +++++++++ .../shared/dto/MaterialGlobalSearchBridge.java | 9 +++++++++ .../shared/dto/SampleGlobalSearchBridge.java | 9 +++++++++ 7 files changed, 63 insertions(+), 3 deletions(-) diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/DataGlobalSearchBridge.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/DataGlobalSearchBridge.java index 5c595dad94d..7e5292a51c0 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/DataGlobalSearchBridge.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/DataGlobalSearchBridge.java @@ -3,6 +3,9 @@ package ch.systemsx.cisd.openbis.generic.shared.dto; import java.util.HashMap; import java.util.Map; +import org.apache.lucene.document.Document; +import org.hibernate.search.bridge.LuceneOptions; + public class DataGlobalSearchBridge<T extends DataPE> extends GlobalSearchBridge<T> { @@ -20,4 +23,16 @@ public class DataGlobalSearchBridge<T extends DataPE> extends GlobalSearchBridge addPerson(values, "modifier", data.getModifier()); return values; } + + @Override + protected boolean shouldIndex(String name, Object value, Document document, LuceneOptions luceneOptions) + { + if (this.getClass().equals(DataGlobalSearchBridge.class) && ((value instanceof ExternalDataPE) || (value instanceof LinkDataPE))) + { + return false; + } else + { + return true; + } + } } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/ExperimentGlobalSearchBridge.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/ExperimentGlobalSearchBridge.java index 9e7d1bb23d0..81ae45ad490 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/ExperimentGlobalSearchBridge.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/ExperimentGlobalSearchBridge.java @@ -3,6 +3,9 @@ package ch.systemsx.cisd.openbis.generic.shared.dto; import java.util.HashMap; import java.util.Map; +import org.apache.lucene.document.Document; +import org.hibernate.search.bridge.LuceneOptions; + public class ExperimentGlobalSearchBridge extends GlobalSearchBridge<ExperimentPE> { @Override @@ -26,4 +29,10 @@ public class ExperimentGlobalSearchBridge extends GlobalSearchBridge<ExperimentP addPerson(values, "modifier", experiment.getModifier()); return values; } + + @Override + protected boolean shouldIndex(String name, Object value, Document document, LuceneOptions luceneOptions) + { + return true; + } } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/ExternalDataGlobalSearchBridge.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/ExternalDataGlobalSearchBridge.java index a02a8d6fcc0..f2ecfa548cb 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/ExternalDataGlobalSearchBridge.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/ExternalDataGlobalSearchBridge.java @@ -2,6 +2,9 @@ package ch.systemsx.cisd.openbis.generic.shared.dto; import java.util.Map; +import org.apache.lucene.document.Document; +import org.hibernate.search.bridge.LuceneOptions; + public class ExternalDataGlobalSearchBridge extends GlobalSearchBridge<ExternalDataPE> { @@ -42,4 +45,10 @@ public class ExternalDataGlobalSearchBridge extends GlobalSearchBridge<ExternalD put(values, "Speed hint", Integer.toString(data.getSpeedHint())); return values; } + + @Override + protected boolean shouldIndex(String name, Object value, Document document, LuceneOptions luceneOptions) + { + return true; + } } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/GlobalSearchBridge.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/GlobalSearchBridge.java index 3f1967bb944..e45f187a116 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/GlobalSearchBridge.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/GlobalSearchBridge.java @@ -146,12 +146,12 @@ public abstract class GlobalSearchBridge<T extends IEntityWithMetaprojects> impl } } + protected abstract boolean shouldIndex(String name, Object value, Document document, LuceneOptions luceneOptions); + @Override public void set(String name, Object value, Document document, LuceneOptions luceneOptions) { - - // Prevent double-indexing (SSDM-3760) - if (this.getClass().equals(DataGlobalSearchBridge.class) && value instanceof ExternalDataPE) + if (shouldIndex(name, value, document, luceneOptions) == false) { return; } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/LinkDataGlobalSearchBridge.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/LinkDataGlobalSearchBridge.java index e27b788a6c4..1aee7449f4c 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/LinkDataGlobalSearchBridge.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/LinkDataGlobalSearchBridge.java @@ -2,6 +2,9 @@ package ch.systemsx.cisd.openbis.generic.shared.dto; import java.util.Map; +import org.apache.lucene.document.Document; +import org.hibernate.search.bridge.LuceneOptions; + public class LinkDataGlobalSearchBridge extends GlobalSearchBridge<LinkDataPE> { @@ -17,4 +20,10 @@ public class LinkDataGlobalSearchBridge extends GlobalSearchBridge<LinkDataPE> } return values; } + + @Override + protected boolean shouldIndex(String name, Object value, Document document, LuceneOptions luceneOptions) + { + return true; + } } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/MaterialGlobalSearchBridge.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/MaterialGlobalSearchBridge.java index 885bc70e831..7654a09b6fc 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/MaterialGlobalSearchBridge.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/MaterialGlobalSearchBridge.java @@ -3,6 +3,9 @@ package ch.systemsx.cisd.openbis.generic.shared.dto; import java.util.HashMap; import java.util.Map; +import org.apache.lucene.document.Document; +import org.hibernate.search.bridge.LuceneOptions; + public class MaterialGlobalSearchBridge extends GlobalSearchBridge<MaterialPE> { @Override @@ -20,4 +23,10 @@ public class MaterialGlobalSearchBridge extends GlobalSearchBridge<MaterialPE> addPerson(values, "registrator", material.getRegistrator()); return values; } + + @Override + protected boolean shouldIndex(String name, Object value, Document document, LuceneOptions luceneOptions) + { + return true; + } } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/SampleGlobalSearchBridge.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/SampleGlobalSearchBridge.java index 4a51a6019d1..9cf00769b37 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/SampleGlobalSearchBridge.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/dto/SampleGlobalSearchBridge.java @@ -3,6 +3,9 @@ package ch.systemsx.cisd.openbis.generic.shared.dto; import java.util.HashMap; import java.util.Map; +import org.apache.lucene.document.Document; +import org.hibernate.search.bridge.LuceneOptions; + public class SampleGlobalSearchBridge extends GlobalSearchBridge<SamplePE> { @Override @@ -31,4 +34,10 @@ public class SampleGlobalSearchBridge extends GlobalSearchBridge<SamplePE> addPerson(values, "modifier", sample.getModifier()); return values; } + + @Override + protected boolean shouldIndex(String name, Object value, Document document, LuceneOptions luceneOptions) + { + return true; + } } -- GitLab