org.apache.solr.update.processor
Class ParseDateFieldUpdateProcessorFactory

java.lang.Object
  extended by org.apache.solr.update.processor.UpdateRequestProcessorFactory
      extended by org.apache.solr.update.processor.FieldMutatingUpdateProcessorFactory
          extended by org.apache.solr.update.processor.ParseDateFieldUpdateProcessorFactory
All Implemented Interfaces:
NamedListInitializedPlugin, SolrCoreAware

public class ParseDateFieldUpdateProcessorFactory
extends FieldMutatingUpdateProcessorFactory

Attempts to mutate selected fields that have only CharSequence-typed values into Date values. Solr will continue to index date/times in the UTC time zone, but the input date/times may be expressed using other time zones, and will be converted to UTC when they are mutated.

The default selection behavior is to mutate both those fields that don't match a schema field, as well as those fields that match a schema field with a field type that uses class solr.DateField or a sub-class, including solr.TrieDateField.

If all values are parseable as dates (or are already Date), then the field will be mutated, replacing each value with its parsed Date equivalent; otherwise, no mutation will occur.

One or more date "format" specifiers must be specified. See Joda-time's DateTimeFormat javadocs for a description of format strings.

A default time zone name or offset may optionally be specified for those dates that don't include an explicit zone/offset. NOTE: three-letter zone designations like "EST" are not parseable (with the single exception of "UTC"), because they are ambiguous. If no default time zone is specified, UTC will be used. See Wikipedia's list of TZ database time zone names.

The locale to use when parsing field values using the specified formats may optionally be specified. If no locale is configured, then Locale.ROOT will be used. The following configuration specifies the French/France locale and two date formats that will parse the strings "le mardi 8 janvier 2013" and "le 28 déc. 2010 à 15 h 30", respectively. Note that either individual <str> elements or <arr>-s of <str> elements may be used to specify the date format(s):

 <processor class="solr.ParseDateFieldUpdateProcessorFactory">
   <str name="defaultTimeZone">Europe/Paris</str>
   <str name="locale">fr_FR</str>
   <arr name="format">
     <str>'le' EEEE dd MMMM yyyy</str>
     <str>'le' dd MMM. yyyy 'à' HH 'h' mm</str>
   </arr>
 </processor>

See Locale for a description of acceptable language, country (optional) and variant (optional) values, joined with underscore(s).


Nested Class Summary
 
Nested classes/interfaces inherited from class org.apache.solr.update.processor.FieldMutatingUpdateProcessorFactory
FieldMutatingUpdateProcessorFactory.SelectorParams
 
Nested classes/interfaces inherited from class org.apache.solr.update.processor.UpdateRequestProcessorFactory
UpdateRequestProcessorFactory.RunAlways
 
Field Summary
static org.slf4j.Logger log
           
 
Constructor Summary
ParseDateFieldUpdateProcessorFactory()
           
 
Method Summary
 FieldMutatingUpdateProcessor.FieldNameSelector getDefaultSelector(SolrCore core)
          Returns true if the field doesn't match any schema field or dynamic field, or if the matched field's type is BoolField
 UpdateRequestProcessor getInstance(SolrQueryRequest req, SolrQueryResponse rsp, UpdateRequestProcessor next)
           
 void init(NamedList args)
          Handles common initialization related to source fields for constructing the FieldNameSelector to be used.
 
Methods inherited from class org.apache.solr.update.processor.FieldMutatingUpdateProcessorFactory
getBooleanArg, getSelector, inform, oneOrMany, parseSelectorExclusionParams, parseSelectorParams
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

log

public static final org.slf4j.Logger log
Constructor Detail

ParseDateFieldUpdateProcessorFactory

public ParseDateFieldUpdateProcessorFactory()
Method Detail

getInstance

public UpdateRequestProcessor getInstance(SolrQueryRequest req,
                                          SolrQueryResponse rsp,
                                          UpdateRequestProcessor next)
Specified by:
getInstance in class UpdateRequestProcessorFactory

init

public void init(NamedList args)
Description copied from class: FieldMutatingUpdateProcessorFactory
Handles common initialization related to source fields for constructing the FieldNameSelector to be used. Will error if any unexpected init args are found, so subclasses should remove any subclass-specific init args before calling this method.

Specified by:
init in interface NamedListInitializedPlugin
Overrides:
init in class FieldMutatingUpdateProcessorFactory

getDefaultSelector

public FieldMutatingUpdateProcessor.FieldNameSelector getDefaultSelector(SolrCore core)
Returns true if the field doesn't match any schema field or dynamic field, or if the matched field's type is BoolField

Overrides:
getDefaultSelector in class FieldMutatingUpdateProcessorFactory
See Also:
FieldMutatingUpdateProcessor.SELECT_ALL_FIELDS


Copyright © 2000-2014 Apache Software Foundation. All Rights Reserved.