From: Ray Lee Date: Fri, 2 Apr 2021 22:52:58 +0000 (-0400) Subject: DRYD-929: Change es indexed title in anthro to name → title → taxon. X-Git-Url: https://git.aero2k.de/?a=commitdiff_plain;h=e7c7c9c91f9e6c2b5402115755a5cc2776fcbc7c;p=tmp%2Fjakarta-migration.git DRYD-929: Change es indexed title in anthro to name → title → taxon. --- diff --git a/3rdparty/nuxeo/nuxeo-platform-elasticsearch/src/main/java/org/collectionspace/services/nuxeo/elasticsearch/DefaultESDocumentWriter.java b/3rdparty/nuxeo/nuxeo-platform-elasticsearch/src/main/java/org/collectionspace/services/nuxeo/elasticsearch/DefaultESDocumentWriter.java index 2bf779734..3cf670db0 100644 --- a/3rdparty/nuxeo/nuxeo-platform-elasticsearch/src/main/java/org/collectionspace/services/nuxeo/elasticsearch/DefaultESDocumentWriter.java +++ b/3rdparty/nuxeo/nuxeo-platform-elasticsearch/src/main/java/org/collectionspace/services/nuxeo/elasticsearch/DefaultESDocumentWriter.java @@ -194,7 +194,7 @@ private void denormExhibitionRecords(CoreSession session, String csid, String te * Compute a title for the public browser. This needs to be indexed in ES so that it can * be used for sorting. (Even if it's just extracting the primary value.) */ - private String computeTitle(DocumentModel doc) { + protected String computeTitle(DocumentModel doc) { List> titleGroups = (List>) doc.getProperty("collectionobjects_common", "titleGroupList"); String primaryTitle = null; diff --git a/3rdparty/nuxeo/nuxeo-platform-elasticsearch/src/main/java/org/collectionspace/services/nuxeo/elasticsearch/anthro/AnthroESDocumentWriter.java b/3rdparty/nuxeo/nuxeo-platform-elasticsearch/src/main/java/org/collectionspace/services/nuxeo/elasticsearch/anthro/AnthroESDocumentWriter.java index e3b041d94..f3a8a7d42 100644 --- a/3rdparty/nuxeo/nuxeo-platform-elasticsearch/src/main/java/org/collectionspace/services/nuxeo/elasticsearch/anthro/AnthroESDocumentWriter.java +++ b/3rdparty/nuxeo/nuxeo-platform-elasticsearch/src/main/java/org/collectionspace/services/nuxeo/elasticsearch/anthro/AnthroESDocumentWriter.java @@ -1,9 +1,11 @@ package org.collectionspace.services.nuxeo.elasticsearch.anthro; +import java.util.List; import java.util.Map; +import org.apache.commons.lang3.StringUtils; import org.codehaus.jackson.node.ObjectNode; - +import org.collectionspace.services.common.api.RefNameUtils; import org.collectionspace.services.nuxeo.elasticsearch.DefaultESDocumentWriter; import org.nuxeo.ecm.core.api.DocumentModel; @@ -24,4 +26,45 @@ public class AnthroESDocumentWriter extends DefaultESDocumentWriter { return denormValues; } + + @Override + protected String computeTitle(DocumentModel doc) { + List> objectNameGroups = (List>) doc.getProperty("collectionobjects_common", "objectNameList"); + String primaryObjectName = null; + + if (objectNameGroups.size() > 0) { + Map primaryObjectNameGroup = objectNameGroups.get(0); + primaryObjectName = (String) primaryObjectNameGroup.get("objectName"); + } + + if (StringUtils.isNotEmpty(primaryObjectName)) { + return primaryObjectName; + } + + List> titleGroups = (List>) doc.getProperty("collectionobjects_common", "titleGroupList"); + String primaryTitle = null; + + if (titleGroups.size() > 0) { + Map primaryTitleGroup = titleGroups.get(0); + primaryTitle = (String) primaryTitleGroup.get("title"); + } + + if (StringUtils.isNotEmpty(primaryTitle)) { + return primaryTitle; + } + + List> taxonomicIdentGroups = (List>) doc.getProperty("collectionobjects_naturalhistory_extension", "taxonomicIdentGroupList"); + String primaryTaxon = null; + + if (taxonomicIdentGroups.size() > 0) { + Map primaryTaxonomicIdentGroup = taxonomicIdentGroups.get(0); + primaryTaxon = (String) primaryTaxonomicIdentGroup.get("taxon"); + } + + if (StringUtils.isNotEmpty(primaryTaxon)) { + primaryTaxon = RefNameUtils.getDisplayName(primaryTaxon); + } + + return primaryTaxon; + } } diff --git a/3rdparty/nuxeo/nuxeo-platform-elasticsearch/src/main/java/org/collectionspace/services/nuxeo/elasticsearch/materials/MaterialsESDocumentWriter.java b/3rdparty/nuxeo/nuxeo-platform-elasticsearch/src/main/java/org/collectionspace/services/nuxeo/elasticsearch/materials/MaterialsESDocumentWriter.java index 2e2ffde8c..9ce7b84f3 100644 --- a/3rdparty/nuxeo/nuxeo-platform-elasticsearch/src/main/java/org/collectionspace/services/nuxeo/elasticsearch/materials/MaterialsESDocumentWriter.java +++ b/3rdparty/nuxeo/nuxeo-platform-elasticsearch/src/main/java/org/collectionspace/services/nuxeo/elasticsearch/materials/MaterialsESDocumentWriter.java @@ -180,12 +180,8 @@ public class MaterialsESDocumentWriter extends DefaultESDocumentWriter { denormValues.putArray("mediaAltText").addAll(mediaAltTexts); } - - /** - * Compute a title for the public browser. This needs to be indexed in ES so that it can - * be used for sorting. (Even if it's just extracting the primary value.) - */ - private String computeTitle(DocumentModel doc) { + @Override + protected String computeTitle(DocumentModel doc) { List> termGroups = (List>) doc.getProperty("materials_common", "materialTermGroupList"); String primaryDisplayName = null;