From: Ray Lee Date: Sat, 30 Jan 2021 22:40:17 +0000 (-0500) Subject: DRYD-927: Add fields to elasticsearch. X-Git-Url: https://git.aero2k.de/?a=commitdiff_plain;h=03c7374eb16307acb61eba59bdb98a1197090939;p=tmp%2Fjakarta-migration.git DRYD-927: Add fields to elasticsearch. Add some more object record fields, and denormalize media alt text and some exhibition fields. --- 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 78d10acde..2bf779734 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 @@ -59,6 +59,7 @@ public class DefaultESDocumentWriter extends JsonESDocumentWriter { denormMediaRecords(session, csid, tenantId, denormValues); denormAcquisitionRecords(session, csid, tenantId, denormValues); + denormExhibitionRecords(session, csid, tenantId, denormValues); // Compute the title of the record for the public browser, and store it so that it can // be used for sorting ES query results. @@ -97,11 +98,12 @@ public class DefaultESDocumentWriter extends JsonESDocumentWriter { } private void denormMediaRecords(CoreSession session, String csid, String tenantId, ObjectNode denormValues) { - // Store the csids of media records that are related to this object. + // Store the csid and alt text of media records that are related to this object. String relatedRecordQuery = String.format("SELECT * FROM Relation WHERE relations_common:subjectCsid = '%s' AND relations_common:objectDocumentType = 'Media' AND ecm:currentLifeCycleState = 'project' AND collectionspace_core:tenantId = '%s'", csid, tenantId); DocumentModelList relationDocs = session.query(relatedRecordQuery); List mediaCsids = new ArrayList(); + List mediaAltTexts = new ArrayList(); if (relationDocs.size() > 0) { Iterator iterator = relationDocs.iterator(); @@ -109,14 +111,24 @@ public class DefaultESDocumentWriter extends JsonESDocumentWriter { while (iterator.hasNext()) { DocumentModel relationDoc = iterator.next(); String mediaCsid = (String) relationDoc.getProperty("relations_common", "objectCsid"); + DocumentModel mediaDoc = getRecordByCsid(session, tenantId, "Media", mediaCsid); - if (isMediaPublished(session, tenantId, mediaCsid)) { + if (isMediaPublished(mediaDoc)) { mediaCsids.add(new TextNode(mediaCsid)); + + String altText = (String) mediaDoc.getProperty("media_common", "altText"); + + if (altText == null) { + altText = ""; + } + + mediaAltTexts.add(new TextNode(altText)); } } } denormValues.putArray("mediaCsid").addAll(mediaCsids); + denormValues.putArray("mediaAltText").addAll(mediaAltTexts); denormValues.put("hasMedia", mediaCsids.size() > 0); } @@ -144,6 +156,40 @@ public class DefaultESDocumentWriter extends JsonESDocumentWriter { denormValues.putArray("creditLine").addAll(creditLines); } +private void denormExhibitionRecords(CoreSession session, String csid, String tenantId, ObjectNode denormValues) { + // Store the title, general note, and curatorial note of exhibition records that are published, and related to this object. + + String relatedRecordQuery = String.format("SELECT * FROM Relation WHERE relations_common:subjectCsid = '%s' AND relations_common:objectDocumentType = 'Exhibition' AND ecm:currentLifeCycleState = 'project' AND collectionspace_core:tenantId = '%s'", csid, tenantId); + DocumentModelList relationDocs = session.query(relatedRecordQuery); + List exhibitions = new ArrayList(); + + if (relationDocs.size() > 0) { + Iterator iterator = relationDocs.iterator(); + + while (iterator.hasNext()) { + DocumentModel relationDoc = iterator.next(); + String exhibitionCsid = (String) relationDoc.getProperty("relations_common", "objectCsid"); + DocumentModel exhibitionDoc = getRecordByCsid(session, tenantId, "Exhibition", exhibitionCsid); + + if (exhibitionDoc != null && isExhibitionPublished(exhibitionDoc)) { + ObjectNode exhibitionNode = objectMapper.createObjectNode(); + + String title = (String) exhibitionDoc.getProperty("exhibitions_common", "title"); + String generalNote = (String) exhibitionDoc.getProperty("exhibitions_common", "generalNote"); + String curatorialNote = (String) exhibitionDoc.getProperty("exhibitions_common", "curatorialNote"); + + exhibitionNode.put("title", title); + exhibitionNode.put("generalNote", generalNote); + exhibitionNode.put("curatorialNote", curatorialNote); + + exhibitions.add(exhibitionNode); + } + } + } + + denormValues.putArray("exhibition").addAll(exhibitions); +} + /** * 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.) @@ -172,12 +218,11 @@ public class DefaultESDocumentWriter extends JsonESDocumentWriter { return primaryObjectName; } - private boolean isMediaPublished(CoreSession session, String tenantId, String mediaCsid) { + private boolean isPublished(DocumentModel doc, String publishedFieldPart, String publishedFieldName) { boolean isPublished = false; - DocumentModel mediaDoc = getRecordByCsid(session, tenantId, "Media", mediaCsid); - if (mediaDoc != null) { - List publishToValues = (List) mediaDoc.getProperty("media_common", "publishToList"); + if (doc != null) { + List publishToValues = (List) doc.getProperty(publishedFieldPart, publishedFieldName); if (publishToValues != null) { for (int i=0; i mediaCsids = new ArrayList(); - - if (mediaDocs.size() > 0) { - Iterator iterator = mediaDocs.iterator(); - - while (iterator.hasNext()) { - DocumentModel mediaDoc = iterator.next(); - if (isMediaPublished(mediaDoc)) { - String mediaCsid = (String) mediaDoc.getName(); - - mediaCsids.add(new TextNode(mediaCsid)); - } - } - } - - denormValues.putArray("mediaCsid").addAll(mediaCsids); + denormMediaRecords(session, refName, tenantId, denormValues); } // Compute the title of the record for the public browser, and store it so that it can @@ -164,6 +145,42 @@ public class MaterialsESDocumentWriter extends DefaultESDocumentWriter { return denormValues; } + private void denormMediaRecords(CoreSession session, String refName, String tenantId, ObjectNode denormValues) { + // Store the csid and alt text of media records that are related to this object. + + String escapedRefName = refName.replace("'", "\\'"); + String mediaQuery = String.format("SELECT * FROM Media WHERE media_common:coverage = '%s' AND ecm:currentLifeCycleState = 'project' AND collectionspace_core:tenantId = '%s' ORDER BY media_common:identificationNumber", escapedRefName, tenantId); + DocumentModelList mediaDocs = session.query(mediaQuery); + List mediaCsids = new ArrayList(); + List mediaAltTexts = new ArrayList(); + + if (mediaDocs.size() > 0) { + Iterator iterator = mediaDocs.iterator(); + + while (iterator.hasNext()) { + DocumentModel mediaDoc = iterator.next(); + + if (isMediaPublished(mediaDoc)) { + String mediaCsid = (String) mediaDoc.getName(); + + mediaCsids.add(new TextNode(mediaCsid)); + + String altText = (String) mediaDoc.getProperty("media_common", "altText"); + + if (altText == null) { + altText = ""; + } + + mediaAltTexts.add(new TextNode(altText)); + } + } + } + + denormValues.putArray("mediaCsid").addAll(mediaCsids); + 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.) diff --git a/3rdparty/nuxeo/nuxeo-platform-listener/reindex/src/main/java/org/collectionspace/services/listener/Reindex.java b/3rdparty/nuxeo/nuxeo-platform-listener/reindex/src/main/java/org/collectionspace/services/listener/Reindex.java index c32ca0a49..106c0e4b2 100644 --- a/3rdparty/nuxeo/nuxeo-platform-listener/reindex/src/main/java/org/collectionspace/services/listener/Reindex.java +++ b/3rdparty/nuxeo/nuxeo-platform-listener/reindex/src/main/java/org/collectionspace/services/listener/Reindex.java @@ -35,8 +35,13 @@ public class Reindex extends AbstractCSEventPostCommitListenerImpl { // save does not hold up the save. public static final String PREV_COVERAGE_KEY = "Reindex.PREV_COVERAGE"; + public static final String PREV_ALT_TEXT_KEY = "Reindex.PREV_ALT_TEXT"; public static final String PREV_CREDIT_LINE_KEY = "Reindex.PREV_CREDIT_LINE"; public static final String PREV_PUBLISH_TO_KEY = "Reindex.PREV_PUBLISH_TO"; + public static final String PREV_EXH_TITLE_KEY = "Reindex.PREV_EXH_TITLE"; + public static final String PREV_EXH_GENERAL_NOTE_KEY = "Reindex.PREV_EXH_GENERAL_NOTE"; + public static final String PREV_EXH_CURATORIAL_NOTE_KEY = "Reindex.PREV_EXH_CURATORIAL_NOTE"; + public static final String PREV_EXH_PUBLISH_TO_KEY = "Reindex.PREV_EXH_PUBLISH_TO"; public static final String PREV_RELATED_COLLECTION_OBJECT_CSID_KEY = "Reindex.PREV_RELATED_COLLECTION_OBJECT_CSID"; public static final String ELASTICSEARCH_ENABLED_PROP = "elasticsearch.enabled"; @@ -59,6 +64,7 @@ public class Reindex extends AbstractCSEventPostCommitListenerImpl { docType.startsWith("Media") || docType.startsWith("Relation") || docType.startsWith("Acquisition") + || docType.startsWith("Exhibition") ) { return true; } @@ -103,8 +109,12 @@ public class Reindex extends AbstractCSEventPostCommitListenerImpl { doc.hasSchema("media_materials") ? "media_materials" : "media_common", "publishToList"); + String prevAltText = (String) eventContext.getProperty(PREV_ALT_TEXT_KEY); + String altText = (String) doc.getProperty("media_common", "altText"); + if ( !ListUtils.isEqualList(prevPublishTo, publishTo) || + !StringUtils.equals(prevAltText, altText) || !StringUtils.equals(prevCoverage, coverage) ) { if (!StringUtils.equals(prevCoverage, coverage)) { @@ -113,7 +123,10 @@ public class Reindex extends AbstractCSEventPostCommitListenerImpl { reindexMaterial(doc.getRepositoryName(), coverage); - if (!ListUtils.isEqualList(prevPublishTo, publishTo)) { + if ( + !ListUtils.isEqualList(prevPublishTo, publishTo) || + !StringUtils.equals(prevAltText, altText) + ) { reindexRelatedCollectionObjects(doc); } } @@ -143,6 +156,31 @@ public class Reindex extends AbstractCSEventPostCommitListenerImpl { reindexPrevRelatedCollectionObjects(eventContext); } } + else if (docType.startsWith("Exhibition")) { + if (eventName.equals(DocumentEventTypes.DOCUMENT_UPDATED)) { + String prevTitle = (String) eventContext.getProperty(PREV_EXH_TITLE_KEY); + String prevGeneralNote = (String) eventContext.getProperty(PREV_EXH_GENERAL_NOTE_KEY); + String prevCuratorialNote = (String) eventContext.getProperty(PREV_EXH_CURATORIAL_NOTE_KEY); + List prevPublishTo = (List) eventContext.getProperty(PREV_EXH_PUBLISH_TO_KEY); + + String title = (String) doc.getProperty("exhibitions_common", "title"); + String generalNote = (String) doc.getProperty("exhibitions_common", "generalNote"); + String curatorialNote = (String) doc.getProperty("exhibitions_common", "curatorialNote"); + List publishTo = (List) doc.getProperty("exhibitions_common", "publishToList"); + + if ( + !ListUtils.isEqualList(prevPublishTo, publishTo) || + !StringUtils.equals(prevTitle, title) || + !StringUtils.equals(prevGeneralNote, generalNote) || + !StringUtils.equals(prevCuratorialNote, curatorialNote) + ) { + reindexRelatedCollectionObjects(doc); + } + } + else if (eventName.equals(DocumentEventTypes.DOCUMENT_REMOVED)) { + reindexPrevRelatedCollectionObjects(eventContext); + } + } else if (docType.startsWith("Relation")) { if ( eventName.equals(DocumentEventTypes.DOCUMENT_CREATED) @@ -152,7 +190,11 @@ public class Reindex extends AbstractCSEventPostCommitListenerImpl { String objectDocumentType = (String) doc.getProperty("relations_common", "objectDocumentType"); if ( - (subjectDocumentType.equals("Media") || subjectDocumentType.equals("Acquisition")) + ( + subjectDocumentType.equals("Media") || + subjectDocumentType.equals("Acquisition") || + subjectDocumentType.equals("Exhibition") + ) && objectDocumentType.equals("CollectionObject") ) { String collectionObjectCsid = (String) doc.getProperty("relations_common", "objectCsid"); diff --git a/3rdparty/nuxeo/nuxeo-platform-listener/reindex/src/main/java/org/collectionspace/services/listener/ReindexSupport.java b/3rdparty/nuxeo/nuxeo-platform-listener/reindex/src/main/java/org/collectionspace/services/listener/ReindexSupport.java index 422e5456e..11caed883 100644 --- a/3rdparty/nuxeo/nuxeo-platform-listener/reindex/src/main/java/org/collectionspace/services/listener/ReindexSupport.java +++ b/3rdparty/nuxeo/nuxeo-platform-listener/reindex/src/main/java/org/collectionspace/services/listener/ReindexSupport.java @@ -47,7 +47,8 @@ public class ReindexSupport extends AbstractCSEventSyncListenerImpl { docType.startsWith("Media") || docType.startsWith("Relation") || docType.startsWith("Acquisition") - ) { + || docType.startsWith("Exhibition") + ) { return true; } } @@ -63,7 +64,9 @@ public class ReindexSupport extends AbstractCSEventSyncListenerImpl { // For core/all profiles: // - When a media record is about to be updated, store the value of the publishToList - // field. + // and altText fields. + // - When an exhibition record is about to be updated, store the value of the title, + // generalNote, and curatorialNote fields. // For materials profile: // - When a media record is about to be updated, store the value of the coverage field. @@ -78,6 +81,7 @@ public class ReindexSupport extends AbstractCSEventSyncListenerImpl { if (eventName.equals(DocumentEventTypes.BEFORE_DOC_UPDATE)) { DocumentModel previousDoc = (DocumentModel) eventContext.getProperty(CoreEventConstants.PREVIOUS_DOCUMENT_MODEL); String coverage = (String) previousDoc.getProperty("media_common", "coverage"); + String altText = (String) previousDoc.getProperty("media_common", "altText"); // Materials profile had publishToList defined in a local extension schema before // that field was added to the common schema. @@ -86,6 +90,7 @@ public class ReindexSupport extends AbstractCSEventSyncListenerImpl { previousDoc.hasSchema("media_materials") ? "media_materials" : "media_common", "publishToList"); + eventContext.setProperty(Reindex.PREV_ALT_TEXT_KEY, altText); eventContext.setProperty(Reindex.PREV_COVERAGE_KEY, coverage); eventContext.setProperty(Reindex.PREV_PUBLISH_TO_KEY, (Serializable) publishTo); } @@ -108,13 +113,34 @@ public class ReindexSupport extends AbstractCSEventSyncListenerImpl { storePrevRelatedCollectionObjects(eventContext, doc); } } + else if (docType.startsWith("Exhibition")) { + if (eventName.equals(DocumentEventTypes.BEFORE_DOC_UPDATE)) { + DocumentModel previousDoc = (DocumentModel) eventContext.getProperty(CoreEventConstants.PREVIOUS_DOCUMENT_MODEL); + String title = (String) previousDoc.getProperty("exhibitions_common", "title"); + String generalNote = (String) previousDoc.getProperty("exhibitions_common", "generalNote"); + String curatorialNote = (String) previousDoc.getProperty("exhibitions_common", "curatorialNote"); + List publishTo = (List) previousDoc.getProperty("exhibitions_common", "publishToList"); + + eventContext.setProperty(Reindex.PREV_EXH_TITLE_KEY, title); + eventContext.setProperty(Reindex.PREV_EXH_GENERAL_NOTE_KEY, generalNote); + eventContext.setProperty(Reindex.PREV_EXH_CURATORIAL_NOTE_KEY, curatorialNote); + eventContext.setProperty(Reindex.PREV_EXH_PUBLISH_TO_KEY, (Serializable) publishTo); + } + else if (eventName.equals(DocumentEventTypes.ABOUT_TO_REMOVE)) { + storePrevRelatedCollectionObjects(eventContext, doc); + } + } else if (docType.startsWith("Relation")) { if (eventName.equals(DocumentEventTypes.ABOUT_TO_REMOVE)) { String subjectDocumentType = (String) doc.getProperty("relations_common", "subjectDocumentType"); String objectDocumentType = (String) doc.getProperty("relations_common", "objectDocumentType"); if ( - (subjectDocumentType.equals("Media") || subjectDocumentType.equals("Acquisition")) + ( + subjectDocumentType.equals("Media") || + subjectDocumentType.equals("Acquisition") || + subjectDocumentType.equals("Exhibition") + ) && objectDocumentType.equals("CollectionObject") ) { String collectionObjectCsid = (String) doc.getProperty("relations_common", "objectCsid"); diff --git a/services/common/src/main/cspace/config/services/tenants/anthro/anthro-tenant-bindings.delta.xml b/services/common/src/main/cspace/config/services/tenants/anthro/anthro-tenant-bindings.delta.xml index 5511e5114..0f8de5351 100644 --- a/services/common/src/main/cspace/config/services/tenants/anthro/anthro-tenant-bindings.delta.xml +++ b/services/common/src/main/cspace/config/services/tenants/anthro/anthro-tenant-bindings.delta.xml @@ -34,6 +34,7 @@ "collectionobjects_common:materialGroupList", "collectionobjects_common:measuredPartGroupList", "collectionobjects_common:numberOfObjects", + "collectionobjects_common:objectHistoryNote", "collectionobjects_common:objectNameList", "collectionobjects_common:objectNumber", "collectionobjects_common:objectProductionDateGroupList", @@ -43,10 +44,12 @@ "collectionobjects_common:objectProductionPlaceGroupList", "collectionobjects_common:objectStatusList", "collectionobjects_common:otherNumberList", + "collectionobjects_common:ownersContributionNote", "collectionobjects_common:publishToList", "collectionobjects_common:responsibleDepartments", "collectionobjects_common:techniqueGroupList", "collectionobjects_common:titleGroupList", + "collectionobjects_common:viewersContributionNote", "collectionobjects_naturalhistory_extension:taxonomicIdentGroupList", "collectionspace_core:*", "collectionspace_denorm:*", @@ -94,12 +97,33 @@ "collectionspace_denorm:hasMedia": { "type": "boolean" }, + "collectionspace_denorm:mediaAltText": { + "type": "text", + "copy_to": "all_field" + }, "collectionspace_denorm:prodYears": { "type": "integer" }, "collectionspace_denorm:collectionYears": { "type": "integer" }, + "collectionspace_denorm:exhibition": { + "type": "object", + "properties": { + "title": { + "type": "text", + "copy_to": "all_field" + }, + "generalNote": { + "type": "text", + "copy_to": "all_field" + }, + "curatorialNote": { + "type": "text", + "copy_to": "all_field" + } + } + }, "collectionobjects_common:objectNumber": { "type": "keyword", @@ -231,6 +255,18 @@ } } }, + "collectionobjects_common:objectHistoryNote": { + "type": "text", + "copy_to": "all_field" + }, + "collectionobjects_common:ownersContributionNote": { + "type": "text", + "copy_to": "all_field" + }, + "collectionobjects_common:viewersContributionNote": { + "type": "text", + "copy_to": "all_field" + }, "media_common:blobCsid": { "type": "keyword" diff --git a/services/common/src/main/cspace/config/services/tenants/fcart/fcart-tenant-bindings.delta.xml b/services/common/src/main/cspace/config/services/tenants/fcart/fcart-tenant-bindings.delta.xml index 8af5e5dd2..6af0e6c52 100644 --- a/services/common/src/main/cspace/config/services/tenants/fcart/fcart-tenant-bindings.delta.xml +++ b/services/common/src/main/cspace/config/services/tenants/fcart/fcart-tenant-bindings.delta.xml @@ -28,6 +28,7 @@ "collectionobjects_common:materialGroupList", "collectionobjects_common:measuredPartGroupList", "collectionobjects_common:numberOfObjects", + "collectionobjects_common:objectHistoryNote", "collectionobjects_common:objectNameList", "collectionobjects_common:objectNumber", "collectionobjects_common:objectProductionDateGroupList", @@ -37,10 +38,12 @@ "collectionobjects_common:objectProductionPlaceGroupList", "collectionobjects_common:objectStatusList", "collectionobjects_common:otherNumberList", + "collectionobjects_common:ownersContributionNote", "collectionobjects_common:publishToList", "collectionobjects_common:responsibleDepartments", "collectionobjects_common:techniqueGroupList", "collectionobjects_common:titleGroupList", + "collectionobjects_common:viewersContributionNote", "collectionobjects_fineart:materialTechniqueDescription", "collectionspace_core:*", "collectionspace_denorm:*", @@ -88,9 +91,30 @@ "collectionspace_denorm:hasMedia": { "type": "boolean" }, + "collectionspace_denorm:mediaAltText": { + "type": "text", + "copy_to": "all_field" + }, "collectionspace_denorm:prodYears": { "type": "integer" }, + "collectionspace_denorm:exhibition": { + "type": "object", + "properties": { + "title": { + "type": "text", + "copy_to": "all_field" + }, + "generalNote": { + "type": "text", + "copy_to": "all_field" + }, + "curatorialNote": { + "type": "text", + "copy_to": "all_field" + } + } + }, "collectionobjects_common:objectNumber": { "type": "keyword", @@ -207,6 +231,18 @@ } } }, + "collectionobjects_common:objectHistoryNote": { + "type": "text", + "copy_to": "all_field" + }, + "collectionobjects_common:ownersContributionNote": { + "type": "text", + "copy_to": "all_field" + }, + "collectionobjects_common:viewersContributionNote": { + "type": "text", + "copy_to": "all_field" + }, "media_common:blobCsid": { "type": "keyword" diff --git a/services/common/src/main/cspace/config/services/tenants/materials/materials-tenant-bindings.delta.xml b/services/common/src/main/cspace/config/services/tenants/materials/materials-tenant-bindings.delta.xml index 796ccea4d..e0e6cd44a 100644 --- a/services/common/src/main/cspace/config/services/tenants/materials/materials-tenant-bindings.delta.xml +++ b/services/common/src/main/cspace/config/services/tenants/materials/materials-tenant-bindings.delta.xml @@ -70,11 +70,13 @@ "materials_common:rapidPrototypingProcesses", "materials_common:additionalProcessGroupList", "materials_common:processNote", + "collectionobjects_common:objectHistoryNote", "collectionobjects_common:objectNumber", "collectionobjects_common:objectStatusList", "collectionobjects_common:publishToList", "collectionobjects_common:materialGroupList", "collectionobjects_common:otherNumberList", + "collectionobjects_common:ownersContributionNote", "collectionobjects_common:collection", "collectionobjects_common:computedCurrentLocation", "collectionobjects_materials:materialContainerGroupList", @@ -87,6 +89,7 @@ "collectionobjects_common:numberOfObjects", "collectionobjects_common:briefDescriptions", "collectionobjects_common:measuredPartGroupList", + "collectionobjects_common:viewersContributionNote", "media_common:blobCsid", "media_materials:publishToList" ] @@ -130,6 +133,27 @@ } } }, + "collectionspace_denorm:mediaAltText": { + "type": "text", + "copy_to": "all_field" + }, + "collectionspace_denorm:exhibition": { + "type": "object", + "properties": { + "title": { + "type": "text", + "copy_to": "all_field" + }, + "generalNote": { + "type": "text", + "copy_to": "all_field" + }, + "curatorialNote": { + "type": "text", + "copy_to": "all_field" + } + } + }, "collectionspace_core:createdAt": { "type": "date", @@ -597,6 +621,18 @@ } } }, + "collectionobjects_common:objectHistoryNote": { + "type": "text", + "copy_to": "all_field" + }, + "collectionobjects_common:ownersContributionNote": { + "type": "text", + "copy_to": "all_field" + }, + "collectionobjects_common:viewersContributionNote": { + "type": "text", + "copy_to": "all_field" + }, "media_materials:publishToList": { "type": "keyword", diff --git a/services/common/src/main/cspace/config/services/tenants/tenant-bindings-proto-unified.xml b/services/common/src/main/cspace/config/services/tenants/tenant-bindings-proto-unified.xml index 58494adce..27dbdac77 100644 --- a/services/common/src/main/cspace/config/services/tenants/tenant-bindings-proto-unified.xml +++ b/services/common/src/main/cspace/config/services/tenants/tenant-bindings-proto-unified.xml @@ -1015,6 +1015,7 @@ "collectionobjects_common:materialGroupList", "collectionobjects_common:measuredPartGroupList", "collectionobjects_common:numberOfObjects", + "collectionobjects_common:objectHistoryNote", "collectionobjects_common:objectNameList", "collectionobjects_common:objectNumber", "collectionobjects_common:objectProductionDateGroupList", @@ -1024,10 +1025,12 @@ "collectionobjects_common:objectProductionPlaceGroupList", "collectionobjects_common:objectStatusList", "collectionobjects_common:otherNumberList", + "collectionobjects_common:ownersContributionNote", "collectionobjects_common:publishToList", "collectionobjects_common:responsibleDepartments", "collectionobjects_common:techniqueGroupList", "collectionobjects_common:titleGroupList", + "collectionobjects_common:viewersContributionNote", "collectionspace_core:*", "collectionspace_denorm:*", "ecm:currentLifeCycleState", @@ -1074,9 +1077,30 @@ "collectionspace_denorm:hasMedia": { "type": "boolean" }, + "collectionspace_denorm:mediaAltText": { + "type": "text", + "copy_to": "all_field" + }, "collectionspace_denorm:prodYears": { "type": "integer" }, + "collectionspace_denorm:exhibition": { + "type": "object", + "properties": { + "title": { + "type": "text", + "copy_to": "all_field" + }, + "generalNote": { + "type": "text", + "copy_to": "all_field" + }, + "curatorialNote": { + "type": "text", + "copy_to": "all_field" + } + } + }, "collectionobjects_common:objectNumber": { "type": "keyword", @@ -1193,6 +1217,18 @@ } } }, + "collectionobjects_common:objectHistoryNote": { + "type": "text", + "copy_to": "all_field" + }, + "collectionobjects_common:ownersContributionNote": { + "type": "text", + "copy_to": "all_field" + }, + "collectionobjects_common:viewersContributionNote": { + "type": "text", + "copy_to": "all_field" + }, "media_common:blobCsid": { "type": "keyword"