diff --git a/solr/core/src/java/org/apache/solr/schema/DatePointField.java b/solr/core/src/java/org/apache/solr/schema/DatePointField.java index 377f571f299..50f85e30d30 100644 --- a/solr/core/src/java/org/apache/solr/schema/DatePointField.java +++ b/solr/core/src/java/org/apache/solr/schema/DatePointField.java @@ -36,8 +36,70 @@ import org.apache.lucene.util.mutable.MutableValueDate; import org.apache.lucene.util.mutable.MutableValueLong; import org.apache.solr.search.QParser; import org.apache.solr.uninverting.UninvertingReader; +import org.apache.solr.update.processor.TimestampUpdateProcessorFactory; import org.apache.solr.util.DateMathParser; +/** + * FieldType that can represent any Date/Time with millisecond precision. + *
+ * Date Format for the XML, incoming and outgoing: + *
+ *+ * A date field shall be of the form 1995-12-31T23:59:59Z + * The trailing "Z" designates UTC time and is mandatory + * (See below for an explanation of UTC). + * Optional fractional seconds are allowed, as long as they do not end + * in a trailing 0 (but any precision beyond milliseconds will be ignored). + * All other parts are mandatory. + *+ *
+ * This format was derived to be standards compliant (ISO 8601) and is a more + * restricted form of the + * canonical + * representation of dateTime from XML schema part 2. Examples... + *
+ *
+ * Note that DatePointField
is lenient with regards to parsing fractional
+ * seconds that end in trailing zeros and will ensure that those values
+ * are indexed in the correct canonical format.
+ *
+ * This FieldType also supports incoming "Date Math" strings for computing + * values by adding/rounding internals of time relative either an explicit + * datetime (in the format specified above) or the literal string "NOW", + * ie: "NOW+1YEAR", "NOW/DAY", "1995-12-31T23:59:59.999Z+5MINUTES", etc... + * -- see {@link DateMathParser} for more examples. + *
+ *
+ * NOTE: Although it is possible to configure a DatePointField
+ * instance with a default value of "NOW
" to compute a timestamp
+ * of when the document was indexed, this is not advisable when using SolrCloud
+ * since each replica of the document may compute a slightly different value.
+ * {@link TimestampUpdateProcessorFactory} is recommended instead.
+ *
+ * Explanation of "UTC"... + *
+ *+ * "In 1970 the Coordinated Universal Time system was devised by an + * international advisory group of technical experts within the International + * Telecommunication Union (ITU). The ITU felt it was best to designate a + * single abbreviation for use in all languages in order to minimize + * confusion. Since unanimous agreement could not be achieved on using + * either the English word order, CUT, or the French word order, TUC, the + * acronym UTC was chosen as a compromise." + *+ * + * @see TrieDateField + * @see PointField + */ public class DatePointField extends PointField implements DateValueFieldType { public DatePointField() { diff --git a/solr/core/src/java/org/apache/solr/search/facet/FacetFieldProcessor.java b/solr/core/src/java/org/apache/solr/search/facet/FacetFieldProcessor.java index 1ba252e3a75..e8b234d6ed0 100644 --- a/solr/core/src/java/org/apache/solr/search/facet/FacetFieldProcessor.java +++ b/solr/core/src/java/org/apache/solr/search/facet/FacetFieldProcessor.java @@ -528,9 +528,9 @@ abstract class FacetFieldProcessor extends FacetProcessor