[
https://issues.apache.org/jira/browse/LUCENE-1768?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12738052#action_12738052
]
Uwe Schindler edited comment on LUCENE-1768 at 8/2/09 5:10 AM:
---------------------------------------------------------------
Luis,
I will post an example of queries and the constructed Query objects when I am
back from holidays (Thursday+). In principle the syntax would be the same like
for normal range queries, only that the min/max arguments may be double, float,
int, long or dates. You would create instances of NumericRangeQuery from it
using one of the static factories for each data type (for dates a conversion to
long using Date.getTime() would be done). The datatype must be somehow
predefined for the field names using some type of schema (per field).. Open
ends use "*" and the [], (), {} would define if incl. NumericRangeQuery is a
subclass of MultiTermQuery so the rewrite method also applies to this query.
For NRQ there is also a config parameter precisionStep which default value is
4, but should be also configureable per-field together with the data type.
Example code for creating the NRQ are in the JavaDocs and there are 2 JUnits in
trunk (TestNumericRangeQuery*) showing how it is used. Also the new LIA2
contains a chapter about it.
was (Author: thetaphi):
Luis,
I will post an example of queries and the constructed Query objects when I am
back from holidays (Thursday+). In principle the syntax would be the same like
for normal range queries, only that the min/max arguments may be double, float,
int, long or dates. You would create instances of NumericRangeQuery from it
using one of the static factories for each data type (for dates a conversion to
long using Date.getTime() would be done). The datatype must be somehow
predefined for the field names using some type of schema (per field). Open ends
use "*" and the [], (), {} would define if incl. NumericRangeQuery is a
subclass of MultiTermQuery so the rewrite method also applies to this query.
Example code for creating the NRQ are in the JavaDocs and there are 2 JUnits in
trunk (TestNumericRangeQuery*) showing how it is used. Also the new LIA2
contains a chapter about it.
> NumericRange support for new query parser
> -----------------------------------------
>
> Key: LUCENE-1768
> URL: https://issues.apache.org/jira/browse/LUCENE-1768
> Project: Lucene - Java
> Issue Type: New Feature
> Components: QueryParser
> Affects Versions: 2.9
> Reporter: Uwe Schindler
>
> 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.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]