From 07cc6af3f33e0eec38c526d93fc005633dc5f3a3 Mon Sep 17 00:00:00 2001 From: Angel Borroy Date: Mon, 15 Jun 2020 16:21:53 +0200 Subject: [PATCH 1/3] SEARCH-2296: Add new "_unit_of_time_quarter" date part field. --- .../java/org/alfresco/solr/AlfrescoSolrDataModel.java | 7 +++++++ .../java/org/alfresco/solr/SolrInformationServer.java | 8 +++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoSolrDataModel.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoSolrDataModel.java index 97f50d702..70ceb8f5a 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoSolrDataModel.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoSolrDataModel.java @@ -121,6 +121,7 @@ import static org.alfresco.solr.SolrInformationServer.UNIT_OF_TIME_HOUR_FIELD_SU import static org.alfresco.solr.SolrInformationServer.UNIT_OF_TIME_MINUTE_FIELD_SUFFIX; import static org.alfresco.solr.SolrInformationServer.UNIT_OF_TIME_MONTH_FIELD_SUFFIX; import static org.alfresco.solr.SolrInformationServer.UNIT_OF_TIME_SECOND_FIELD_SUFFIX; +import static org.alfresco.solr.SolrInformationServer.UNIT_OF_TIME_QUARTER_FIELD_SUFFIX; import static org.alfresco.solr.SolrInformationServer.UNIT_OF_TIME_YEAR_FIELD_SUFFIX; /** @@ -171,6 +172,7 @@ public class AlfrescoSolrDataModel implements QueryConstants UNIT_OF_TIME_HOUR, UNIT_OF_TIME_DAY, UNIT_OF_TIME_MONTH, + UNIT_OF_TIME_QUARTER, UNIT_OF_TIME_YEAR } @@ -179,6 +181,7 @@ public class AlfrescoSolrDataModel implements QueryConstants static final String PART_FIELDNAME_PREFIX = "part@sd@"; static final Set DATE_PART_SUFFIXES = Set.of(UNIT_OF_TIME_YEAR_FIELD_SUFFIX, + UNIT_OF_TIME_QUARTER_FIELD_SUFFIX, UNIT_OF_TIME_MONTH_FIELD_SUFFIX, UNIT_OF_TIME_DAY_FIELD_SUFFIX, UNIT_OF_TIME_HOUR_FIELD_SUFFIX, @@ -1132,6 +1135,8 @@ public class AlfrescoSolrDataModel implements QueryConstants return UNIT_OF_TIME_DAY_FIELD_SUFFIX; case UNIT_OF_TIME_MONTH: return UNIT_OF_TIME_MONTH_FIELD_SUFFIX; + case UNIT_OF_TIME_QUARTER: + return UNIT_OF_TIME_QUARTER_FIELD_SUFFIX; case UNIT_OF_TIME_YEAR: return UNIT_OF_TIME_YEAR_FIELD_SUFFIX; default: @@ -1792,6 +1797,8 @@ public class AlfrescoSolrDataModel implements QueryConstants return SpecializedFieldType.UNIT_OF_TIME_DAY; case UNIT_OF_TIME_MONTH_FIELD_SUFFIX: return SpecializedFieldType.UNIT_OF_TIME_MONTH; + case UNIT_OF_TIME_QUARTER_FIELD_SUFFIX: + return SpecializedFieldType.UNIT_OF_TIME_QUARTER; case UNIT_OF_TIME_YEAR_FIELD_SUFFIX: return SpecializedFieldType.UNIT_OF_TIME_YEAR; case FIELD_TRANSFORMATION_STATUS_SUFFIX: diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/SolrInformationServer.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/SolrInformationServer.java index 9c8aa0e78..561200331 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/SolrInformationServer.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/SolrInformationServer.java @@ -95,6 +95,7 @@ import java.nio.charset.StandardCharsets; import java.text.DecimalFormat; import java.time.ZonedDateTime; import java.time.format.DateTimeFormatter; +import java.time.temporal.IsoFields; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; @@ -381,6 +382,7 @@ public class SolrInformationServer implements InformationServer private static final String UNIT_OF_TIME_FIELD_INFIX = "_unit_of_time"; public static final String UNIT_OF_TIME_YEAR_FIELD_SUFFIX = UNIT_OF_TIME_FIELD_INFIX + "_year"; + public static final String UNIT_OF_TIME_QUARTER_FIELD_SUFFIX = UNIT_OF_TIME_FIELD_INFIX + "_quarter"; public static final String UNIT_OF_TIME_MONTH_FIELD_SUFFIX = UNIT_OF_TIME_FIELD_INFIX + "_month"; public static final String UNIT_OF_TIME_DAY_FIELD_SUFFIX = UNIT_OF_TIME_FIELD_INFIX + "_day"; public static final String UNIT_OF_TIME_HOUR_FIELD_SUFFIX = UNIT_OF_TIME_FIELD_INFIX + "_hour"; @@ -2264,7 +2266,8 @@ public class SolrInformationServer implements InformationServer .stream() .filter(field -> field.getField().startsWith("text@sd___@")) .forEach(field -> addStringProperty(valueHolder, field, value, locale)); - } else + } + else { dataModel.getIndexedFieldNamesForProperty(propertyQName).getFields() .forEach(field -> { @@ -3806,6 +3809,7 @@ public class SolrInformationServer implements InformationServer * * @@ -3828,7 +3832,9 @@ public class SolrInformationServer implements InformationServer { String fieldNamePrefix = dataModel.destructuredDateTimePartFieldNamePrefix(sourceFieldName); ZonedDateTime dateTime = ZonedDateTime.parse(value, DateTimeFormatter.ISO_ZONED_DATE_TIME); + consumer.accept(fieldNamePrefix + UNIT_OF_TIME_YEAR_FIELD_SUFFIX, dateTime.getYear()); + consumer.accept(fieldNamePrefix + UNIT_OF_TIME_QUARTER_FIELD_SUFFIX, dateTime.get(IsoFields.QUARTER_OF_YEAR)); consumer.accept(fieldNamePrefix + UNIT_OF_TIME_MONTH_FIELD_SUFFIX, dateTime.getMonth().getValue()); consumer.accept(fieldNamePrefix + UNIT_OF_TIME_DAY_FIELD_SUFFIX, dateTime.getDayOfMonth()); From dc494362eacb281253ececc2840efc22b94dff76 Mon Sep 17 00:00:00 2001 From: Angel Borroy Date: Mon, 15 Jun 2020 16:22:24 +0200 Subject: [PATCH 2/3] SEARCH-2296: Testing for the new "_unit_of_time_quarter" date part field. --- .../java/org/alfresco/solr/SolrInformationServerTest.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/SolrInformationServerTest.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/SolrInformationServerTest.java index 2ee5c6cf7..6f9480da0 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/SolrInformationServerTest.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/SolrInformationServerTest.java @@ -72,6 +72,7 @@ import static org.alfresco.solr.SolrInformationServer.UNIT_OF_TIME_HOUR_FIELD_SU import static org.alfresco.solr.SolrInformationServer.UNIT_OF_TIME_MINUTE_FIELD_SUFFIX; import static org.alfresco.solr.SolrInformationServer.UNIT_OF_TIME_MONTH_FIELD_SUFFIX; import static org.alfresco.solr.SolrInformationServer.UNIT_OF_TIME_SECOND_FIELD_SUFFIX; +import static org.alfresco.solr.SolrInformationServer.UNIT_OF_TIME_QUARTER_FIELD_SUFFIX; import static org.alfresco.solr.SolrInformationServer.UNIT_OF_TIME_YEAR_FIELD_SUFFIX; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; @@ -168,6 +169,8 @@ public class SolrInformationServerTest assertEquals(1972, unitOfTimeFieldValue(document, AlfrescoSolrDataModel.PART_FIELDNAME_PREFIX + fieldSuffix + UNIT_OF_TIME_YEAR_FIELD_SUFFIX)); + assertEquals(3, + unitOfTimeFieldValue(document, AlfrescoSolrDataModel.PART_FIELDNAME_PREFIX + fieldSuffix + UNIT_OF_TIME_QUARTER_FIELD_SUFFIX)); assertEquals(9, unitOfTimeFieldValue(document, AlfrescoSolrDataModel.PART_FIELDNAME_PREFIX + fieldSuffix + UNIT_OF_TIME_MONTH_FIELD_SUFFIX)); assertEquals(16, @@ -196,6 +199,8 @@ public class SolrInformationServerTest assertEquals(1972, unitOfTimeFieldValue(document, AlfrescoSolrDataModel.PART_FIELDNAME_PREFIX + fieldSuffix + UNIT_OF_TIME_YEAR_FIELD_SUFFIX)); + assertEquals(3, + unitOfTimeFieldValue(document, AlfrescoSolrDataModel.PART_FIELDNAME_PREFIX + fieldSuffix + UNIT_OF_TIME_QUARTER_FIELD_SUFFIX)); assertEquals(9, unitOfTimeFieldValue(document, AlfrescoSolrDataModel.PART_FIELDNAME_PREFIX + fieldSuffix + UNIT_OF_TIME_MONTH_FIELD_SUFFIX)); assertEquals(16, From c3641bf91b1dabe41f3db3fdc2d6a8bc7a5328b6 Mon Sep 17 00:00:00 2001 From: Angel Borroy Date: Tue, 16 Jun 2020 10:35:18 +0200 Subject: [PATCH 3/3] SEARCH-2296: Bump alfresco-data-model version --- search-services/alfresco-solrclient-lib/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/search-services/alfresco-solrclient-lib/pom.xml b/search-services/alfresco-solrclient-lib/pom.xml index 38d2d0576..be8043b36 100644 --- a/search-services/alfresco-solrclient-lib/pom.xml +++ b/search-services/alfresco-solrclient-lib/pom.xml @@ -22,7 +22,7 @@ - 8.119 + 8.123 2.10.3