lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Uwe Schindler (JIRA)" <>
Subject [jira] [Commented] (LUCENE-1768) NumericRange support for new query parser
Date Tue, 29 Mar 2011 06:43:05 GMT


Uwe Schindler commented on LUCENE-1768:

- I remember the old date query, using strings, used to not only allow range queries, but
also term queries (date:2010/10/10), is that correct? Does numeric fields also support this
kind of query? I could only fine NumericRangeQuery, but no NumericQuery. If the user enters
(age:19) in the query, and "age" is a numeric field, should the query parser throw an error
saying it's not suppported?

To create something like a NumericQuery (age:19), the correct and most performant way is to
use a NumericRangeQuery with (includeLower==includeUpper)==true and (lower==upper)==value.
This query is since Lucene 2.9 always rewritten in the most optimal way (internally it uses
a ConstantScore TermQuery using the prefix encoded term. This should also be noted in JavaDocs?

This is also how Solr's QP works.

> NumericRange support for new query parser
> -----------------------------------------
>                 Key: LUCENE-1768
>                 URL:
>             Project: Lucene - Java
>          Issue Type: New Feature
>          Components: QueryParser
>    Affects Versions: 2.9
>            Reporter: Uwe Schindler
>            Assignee: Adriano Crestani
>              Labels: contrib, gsoc, gsoc2011, lucene-gsoc-11, mentor
>             Fix For: 4.0
> It would be good to specify some type of "schema" for the query parser in future, to
automatically create NumericRangeQuery for different numeric types? It would then be possible
to index a numeric value (double,float,long,int) using NumericField and then the query parser
knows, which type of field this is and so it correctly creates a NumericRangeQuery for strings
like "[1.567..*]" or "(1.787..19.5]".
> There is currently no way to extract if a field is numeric from the index, so the user
will have to configure the FieldConfig objects in the ConfigHandler. But if this is done,
it will not be that difficult to implement the rest.
> The only difference between the current handling of RangeQuery is then the instantiation
of the correct Query type and conversion of the entered numeric values (simple Number.valueOf(...)
cast of the user entered numbers). Evenerything else is identical, NumericRangeQuery also
supports the MTQ rewrite modes (as it is a MTQ).
> Another thing is a change in Date semantics. There are some strange flags in the current
parser that tells it how to handle dates.

This message is automatically generated by JIRA.
For more information on JIRA, see:

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message