You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by rm...@apache.org on 2012/07/09 15:12:41 UTC

svn commit: r1359149 - in /lucene/dev/branches/lucene4199/lucene/queryparser/src/java/org/apache/lucene/queryparser: classic/ flexible/standard/ flexible/standard/config/ flexible/standard/nodes/ flexible/standard/processors/

Author: rmuir
Date: Mon Jul  9 13:12:41 2012
New Revision: 1359149

URL: http://svn.apache.org/viewvc?rev=1359149&view=rev
Log:
LUCENE-4199: allow setting of tz used for date range parsing

Modified:
    lucene/dev/branches/lucene4199/lucene/queryparser/src/java/org/apache/lucene/queryparser/classic/QueryParserBase.java
    lucene/dev/branches/lucene4199/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/StandardQueryParser.java
    lucene/dev/branches/lucene4199/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/config/StandardQueryConfigHandler.java
    lucene/dev/branches/lucene4199/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/nodes/NumericQueryNode.java
    lucene/dev/branches/lucene4199/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/processors/TermRangeQueryNodeProcessor.java

Modified: lucene/dev/branches/lucene4199/lucene/queryparser/src/java/org/apache/lucene/queryparser/classic/QueryParserBase.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4199/lucene/queryparser/src/java/org/apache/lucene/queryparser/classic/QueryParserBase.java?rev=1359149&r1=1359148&r2=1359149&view=diff
==============================================================================
--- lucene/dev/branches/lucene4199/lucene/queryparser/src/java/org/apache/lucene/queryparser/classic/QueryParserBase.java (original)
+++ lucene/dev/branches/lucene4199/lucene/queryparser/src/java/org/apache/lucene/queryparser/classic/QueryParserBase.java Mon Jul  9 13:12:41 2012
@@ -71,6 +71,7 @@ public abstract class QueryParserBase {
   float fuzzyMinSim = FuzzyQuery.defaultMinSimilarity;
   int fuzzyPrefixLength = FuzzyQuery.defaultPrefixLength;
   Locale locale = Locale.getDefault();
+  TimeZone timeZone = TimeZone.getDefault();
 
   // the default date resolution
   DateTools.Resolution dateResolution = null;
@@ -329,6 +330,14 @@ public abstract class QueryParserBase {
   public Locale getLocale() {
     return locale;
   }
+  
+  public void setTimeZone(TimeZone timeZone) {
+    this.timeZone = timeZone;
+  }
+  
+  public TimeZone getTimeZone() {
+    return timeZone;
+  }
 
   /**
    * Sets the default date resolution used by RangeQueries for fields for which no
@@ -678,7 +687,7 @@ public abstract class QueryParserBase {
         // The user can only specify the date, not the time, so make sure
         // the time is set to the latest possible time of that date to really
         // include all documents:
-        Calendar cal = Calendar.getInstance(locale);
+        Calendar cal = Calendar.getInstance(timeZone, locale);
         cal.setTime(d2);
         cal.set(Calendar.HOUR_OF_DAY, 23);
         cal.set(Calendar.MINUTE, 59);

Modified: lucene/dev/branches/lucene4199/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/StandardQueryParser.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4199/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/StandardQueryParser.java?rev=1359149&r1=1359148&r2=1359149&view=diff
==============================================================================
--- lucene/dev/branches/lucene4199/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/StandardQueryParser.java (original)
+++ lucene/dev/branches/lucene4199/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/StandardQueryParser.java Mon Jul  9 13:12:41 2012
@@ -19,6 +19,7 @@ package org.apache.lucene.queryparser.fl
 
 import java.util.Locale;
 import java.util.Map;
+import java.util.TimeZone;
 import java.util.TooManyListenersException;
 
 import org.apache.lucene.analysis.Analyzer;
@@ -344,6 +345,14 @@ public class StandardQueryParser extends
     return getQueryConfigHandler().get(ConfigurationKeys.LOCALE);
   }
   
+  public void setTimeZone(TimeZone timeZone) {
+    getQueryConfigHandler().set(ConfigurationKeys.TIMEZONE, timeZone);
+  }
+  
+  public TimeZone getTimeZone() {
+    return getQueryConfigHandler().get(ConfigurationKeys.TIMEZONE);
+  }
+  
   /**
    * Sets the default slop for phrases. If zero, then exact phrase matches are
    * required. Default value is zero.

Modified: lucene/dev/branches/lucene4199/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/config/StandardQueryConfigHandler.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4199/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/config/StandardQueryConfigHandler.java?rev=1359149&r1=1359148&r2=1359149&view=diff
==============================================================================
--- lucene/dev/branches/lucene4199/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/config/StandardQueryConfigHandler.java (original)
+++ lucene/dev/branches/lucene4199/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/config/StandardQueryConfigHandler.java Mon Jul  9 13:12:41 2012
@@ -21,6 +21,7 @@ import java.util.HashMap;
 import java.util.LinkedHashMap;
 import java.util.Locale;
 import java.util.Map;
+import java.util.TimeZone;
 
 import org.apache.lucene.analysis.Analyzer;
 import org.apache.lucene.document.DateTools;
@@ -101,6 +102,8 @@ public class StandardQueryConfigHandler 
      */
     final public static ConfigurationKey<Locale> LOCALE = ConfigurationKey.newInstance();
     
+    final public static ConfigurationKey<TimeZone> TIMEZONE = ConfigurationKey.newInstance();
+    
     /**
      * Key used to set the {@link RewriteMethod} used when creating queries
      * 

Modified: lucene/dev/branches/lucene4199/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/nodes/NumericQueryNode.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4199/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/nodes/NumericQueryNode.java?rev=1359149&r1=1359148&r2=1359149&view=diff
==============================================================================
--- lucene/dev/branches/lucene4199/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/nodes/NumericQueryNode.java (original)
+++ lucene/dev/branches/lucene4199/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/nodes/NumericQueryNode.java Mon Jul  9 13:12:41 2012
@@ -90,7 +90,7 @@ public class NumericQueryNode extends Qu
    * @return the value converte to {@link String} and escaped
    */
   protected CharSequence getTermEscaped(EscapeQuerySyntax escaper) {
-    return escaper.escape(NumberFormat.getNumberInstance().format(this.value),
+    return escaper.escape(numberFormat.format(this.value),
         Locale.ROOT, Type.NORMAL);
   }
   

Modified: lucene/dev/branches/lucene4199/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/processors/TermRangeQueryNodeProcessor.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4199/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/processors/TermRangeQueryNodeProcessor.java?rev=1359149&r1=1359148&r2=1359149&view=diff
==============================================================================
--- lucene/dev/branches/lucene4199/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/processors/TermRangeQueryNodeProcessor.java (original)
+++ lucene/dev/branches/lucene4199/lucene/queryparser/src/java/org/apache/lucene/queryparser/flexible/standard/processors/TermRangeQueryNodeProcessor.java Mon Jul  9 13:12:41 2012
@@ -22,6 +22,7 @@ import java.util.Calendar;
 import java.util.Date;
 import java.util.List;
 import java.util.Locale;
+import java.util.TimeZone;
 
 import org.apache.lucene.document.DateTools;
 import org.apache.lucene.document.DateTools.Resolution;
@@ -76,6 +77,12 @@ public class TermRangeQueryNodeProcessor
         locale = Locale.getDefault();
       }
       
+      TimeZone timeZone = getQueryConfigHandler().get(ConfigurationKeys.TIMEZONE);
+      
+      if (timeZone == null) {
+        timeZone = TimeZone.getDefault();
+      }
+      
       CharSequence field = termRangeNode.getField();
       String fieldStr = null;
       
@@ -114,7 +121,7 @@ public class TermRangeQueryNodeProcessor
             // the time is set to the latest possible time of that date to
             // really
             // include all documents:
-            Calendar cal = Calendar.getInstance(locale);
+            Calendar cal = Calendar.getInstance(timeZone, locale);
             cal.setTime(d2);
             cal.set(Calendar.HOUR_OF_DAY, 23);
             cal.set(Calendar.MINUTE, 59);