Lucene numeric range search with LUKE

indexingluceneluke

I have a number of numeric Lucene indexed fields:

60000
78500
105000

If I use LUKE to query for 78500 as follows:

price:78500

It returns the correct record, however if I try to return all three record as a range I get no results.

price:[60000 TO 105000]

I realise this is due to padding as numbers are treated strings by Lucene however I just wish to know what I should be putting into LUKE to return the three records.

Many thanks for any help.

Best Answer

If the fields are indexed as NumericField you must use "Use XML Query Parser" option in query parser tab and the 3.5 version of Luke:

https://code.google.com/p/luke/downloads/detail?name=lukeall-3.5.0.jar&can=2&q=

An example of query with a string and numeric field is:

<BooleanQuery>
<Clause fieldName="colour" occurs="must">
    <TermQuery>rojo</TermQuery>
</Clause>
<Clause fieldName="price" occurs="must">
    <NumericRangeQuery type="int" lowerTerm="4000" upperTerm="5000" />
</Clause>
</BooleanQuery>
Related Topic