lucenenet-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Christopher Currens (JIRA)" <j...@apache.org>
Subject [Lucene.Net] [jira] [Created] (LUCENENET-423) QueryParser differences between Java and .NET
Date Thu, 09 Jun 2011 23:26:03 GMT
QueryParser differences between Java and .NET
---------------------------------------------

                 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


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.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message