I have a numeric range query to perform in an index. I begin by indexing a 
document with a field value of "300". When I search for a range [100 TO 400] I 
get results from the search operation. Strangely enough, when I search for [100 
TO 4000], I don't get any search results.


Here is a code snippet for the test I perform:


public static void main(String[] args) throws IOException {

String fileName = args[0];

File file = new File(fileName);

FSDirectory directory = FSDirectory.open(file);

IndexWriterConfig conf = new IndexWriterConfig(Version.LUCENE_4_9_1, new 
WhitespaceAnalyzer());

IndexWriter indexWriter = new IndexWriter(directory, conf);

indexWriter.deleteAll();

indexWriter.commit();

//creating document

Document doc = new Document();

FieldType fieldType = new FieldType();

fieldType.setIndexed(true);

fieldType.setNumericType(NumericType.INT);

IntField intField = new IntField("field1", 300, fieldType);

doc.add(intField);

indexWriter.addDocument(doc);

indexWriter.commit();

indexWriter.close();

DirectoryReader directoryReader = DirectoryReader.open(directory);

IndexSearcher indexSearcher = new IndexSearcher(directoryReader);

//searching for numbers >= 100 and <= 400

Query rangeQueryWorking = NumericRangeQuery.newIntRange("field1", 100, 400, 
true, true);

TopDocs resultsWorking = indexSearcher.search(rangeQueryWorking, 10);

//searching for numbers >= 100 and <= 4000

Query rangeQueryNotWorking = NumericRangeQuery.newIntRange("field1", 100, 4000, 
true, true);

TopDocs resultsNotWorking = indexSearcher.search(rangeQueryNotWorking, 10);

//returns 1 as expected

System.out.println(resultsWorking.totalHits);

//returns 0 but expected 1

System.out.println(resultsNotWorking.totalHits);

}



Can someone help me with this issue?


Thank you in advance!

Reply via email to