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!