I have a set of documents that all have a "timestamp" field which is stored as a long integer number. The field is indexed in my Lucene index as a number using NumericField with a precision step of 8:
Field field = new NumericField("timestamp", 8); field.setLongValue( timestampValue); I do this so I can do numeric range queries to retrieve all documents that fall within a specific time range. The query I construct has two parts to it, a query, and a filter. I get the document hits as follows: IndexReader reader = ...... some index reader..... IndexSearcher searcher = new IndexSearcher(reader); Filter filter = NumericRangeFilter.newLongRange("timestamp", 8, startTime, endTime, false, true); Query query = new MatchAllDocsQuery(); searcher.search( query, filter, myCollector); // My collector is a super class of Collector - saves all Hits Occasionally, I have a single document with a very specific timestamp I want to retrieve. Suppose that timestamp is timeX, I will create the filter as follows: Filter filter = NumericRangeFilter.newLongRange("timestamp", 8, timeX-1, timeX, false, true); But with this filter, the document that should be found is never found. I have even tried expanding the time range as follows, but with no success: Filter filter = NumericRangeFilter.newLongRange("timestamp", 8, timeX-1, timeX+500, false, true); Strangely, a filter that should NOT have found the document actually did find the document: Filter filter = NumericRangeFilter.newLongRange("timestamp", 8, timeX, timeX+1000, false, true); This filter should NOT have found the document since the minInclusive argument is false. I have also noticed that sometimes when I have several documents with exactly the same timestamp, a query will return some, but not all, of the documents. I have also tried to use a NumericRangeQuery as follows: Query query = NumericRangeQuery.newLongRange("timestamp", 8, timeX-1, timeX, false, true); searcher.search( query, null, myCollector); This also fails to return my document(s). Am I doing something wrong here? Have I misunderstood how this is supposed to work? Has anyone else had problems like this? Thanks for any help or guidance or tips you can give me, -Daniel Sanders