[ 
https://issues.apache.org/jira/browse/LUCENENET-423?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Christopher Currens updated LUCENENET-423:
------------------------------------------

    Fix Version/s: Lucene.Net 3.0.3
          Summary: QueryParser differences between Java and .NET when parsing 
range queries involving dates  (was: QueryParser differences between Java and 
.NET)

This is a difference of behavior between searching in Java and .NET.  While 
.NET is more accurate about DateTime parsing, that difference in behavior seems 
to be against what was discussed [in this email 
thread|http://mail-archives.apache.org/mod_mbox/lucene-lucene-net-dev/201112.mbox/%3CCAFZAm_VxWaNZmCAUZPFt2%2B9HJBXJjSTmJ-uLj%3DQh-naGja9MKA%40mail.gmail.com%3E],
 regarding people's wishes for the future of the project.  Much of what was 
agreed upon was the project having much of the same behavior of Java, in that 
indexes are compatible and searches in each returning the same results for the 
same search on the same index.
                
> QueryParser differences between Java and .NET when parsing range queries 
> involving dates
> ----------------------------------------------------------------------------------------
>
>                 Key: LUCENENET-423
>                 URL: https://issues.apache.org/jira/browse/LUCENENET-423
>             Project: Lucene.Net
>          Issue Type: Bug
>    Affects Versions: Lucene.Net 2.9.2, Lucene.Net 2.9.4, Lucene.Net 2.9.4g
>            Reporter: Christopher Currens
>             Fix For: Lucene.Net 3.0.3
>
>
> When trying to do a RangeQuery that uses dates in a certain format, .NET 
> behaves differently from its Java counterpart.  The code is the same between 
> them, but as far as I can tell, it appears that it is a difference in the way 
> Java parses dates vs how .NET parses dates.  To reproduce:
> {code:java}
> var queryParser = new QueryParser(Lucene.Net.Util.Version.LUCENE_29, 
> "FullText", new StandardAnalyzer(Lucene.Net.Util.Version.LUCENE_29));
> var query = queryParser.Parse("Field:[2001-01-17 TO 2001-01-20]");
> {code}
> You'll notice that query looks like the old DateField format (eg 
> "0g1d64542").  If you do the same query in Java (or Luke), you'll notice the 
> query gets parsed as if it were a RangeQuery of string.  AFAIK, Java cannot 
> parse a string formatted in that way.  If you change the string to use / 
> instead of - in the java, you'll get one that uses DateResolutions and 
> DateTools.DateToString().
> It seems an appropriate fix for this, if we wanted to keep this behavior 
> similar to Java, would be to write our own DateTime parser that behaved the 
> same way to Java's parser.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to