jpountz commented on a change in pull request #658: URL: https://github.com/apache/lucene/pull/658#discussion_r802363166
########## File path: lucene/core/src/java/org/apache/lucene/search/PointRangeQuery.java ########## @@ -369,6 +369,54 @@ public Scorer scorer(LeafReaderContext context) throws IOException { return scorerSupplier.get(Long.MAX_VALUE); } + @Override + public int count(LeafReaderContext context) throws IOException { + LeafReader reader = context.reader(); + + PointValues values = reader.getPointValues(field); + if (values == null) { + // No docs in this segment indexed any points or this field did not contain any points + return 0; + } + + if (values.getNumIndexDimensions() != numDims) { + throw new IllegalArgumentException( + "field=\"" + + field + + "\" was indexed with numIndexDimensions=" + + values.getNumIndexDimensions() + + " but this query has numDims=" + + numDims); + } + if (bytesPerDim != values.getBytesPerDimension()) { + throw new IllegalArgumentException( + "field=\"" + + field + + "\" was indexed with bytesPerDim=" + + values.getBytesPerDimension() + + " but this query has bytesPerDim=" + + bytesPerDim); + } + + if (reader.hasDeletions() == false + && numDims == 1 + && values.getDocCount() == reader.maxDoc() Review comment: We do not need all documents to have points. In your example where there are 10 docs and 8 of them have points. If the range query contains the range of value (ie. all points match), then the BKD tree would give us 8 matches. So we're good? -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org For additional commands, e-mail: issues-h...@lucene.apache.org