You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ds...@apache.org on 2016/04/13 16:39:49 UTC

lucene-solr:master: LUCENE-7211: Use DocIdSetBuilder instead of FixedBitSet in spatial RPT intersects predicate.

Repository: lucene-solr
Updated Branches:
  refs/heads/master cd673ebec -> f7f64c217


LUCENE-7211: Use DocIdSetBuilder instead of FixedBitSet in spatial RPT intersects predicate.


Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/f7f64c21
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/f7f64c21
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/f7f64c21

Branch: refs/heads/master
Commit: f7f64c21722e739bc7cc9fbd62c2275ef6340fc1
Parents: cd673eb
Author: David Smiley <ds...@apache.org>
Authored: Wed Apr 13 10:39:09 2016 -0400
Committer: David Smiley <ds...@apache.org>
Committed: Wed Apr 13 10:39:09 2016 -0400

----------------------------------------------------------------------
 lucene/CHANGES.txt                                     |  3 +++
 .../spatial/prefix/IntersectsPrefixTreeQuery.java      | 13 ++++++-------
 2 files changed, 9 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/f7f64c21/lucene/CHANGES.txt
----------------------------------------------------------------------
diff --git a/lucene/CHANGES.txt b/lucene/CHANGES.txt
index 87d039f..58eee6a 100644
--- a/lucene/CHANGES.txt
+++ b/lucene/CHANGES.txt
@@ -63,6 +63,9 @@ Optimizations
 * LUCENE-7159: Speed up LatLonPoint polygon performance for complex
   polygons. (Robert Muir)
 
+* LUCENE-7211: Reduce memory & GC for spatial RPT Intersects when the number of
+  matching docs is small. (Jeff Wartes, David Smiley)
+
 Bug Fixes
 
 * LUCENE-7127: Fix corner case bugs in GeoPointDistanceQuery. (Robert Muir)

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/f7f64c21/lucene/spatial-extras/src/java/org/apache/lucene/spatial/prefix/IntersectsPrefixTreeQuery.java
----------------------------------------------------------------------
diff --git a/lucene/spatial-extras/src/java/org/apache/lucene/spatial/prefix/IntersectsPrefixTreeQuery.java b/lucene/spatial-extras/src/java/org/apache/lucene/spatial/prefix/IntersectsPrefixTreeQuery.java
index 89129a1..17c5a7e 100644
--- a/lucene/spatial-extras/src/java/org/apache/lucene/spatial/prefix/IntersectsPrefixTreeQuery.java
+++ b/lucene/spatial-extras/src/java/org/apache/lucene/spatial/prefix/IntersectsPrefixTreeQuery.java
@@ -18,14 +18,13 @@ package org.apache.lucene.spatial.prefix;
 
 import java.io.IOException;
 
-import org.locationtech.spatial4j.shape.Shape;
-import org.locationtech.spatial4j.shape.SpatialRelation;
 import org.apache.lucene.index.LeafReaderContext;
 import org.apache.lucene.search.DocIdSet;
 import org.apache.lucene.spatial.prefix.tree.Cell;
 import org.apache.lucene.spatial.prefix.tree.SpatialPrefixTree;
-import org.apache.lucene.util.BitDocIdSet;
-import org.apache.lucene.util.FixedBitSet;
+import org.apache.lucene.util.DocIdSetBuilder;
+import org.locationtech.spatial4j.shape.Shape;
+import org.locationtech.spatial4j.shape.SpatialRelation;
 
 /**
  * A Query matching documents that have an {@link SpatialRelation#INTERSECTS}
@@ -53,16 +52,16 @@ public class IntersectsPrefixTreeQuery extends AbstractVisitingPrefixTreeQuery {
 
      */
     return new VisitorTemplate(context) {
-      private FixedBitSet results;
+      private DocIdSetBuilder results;
 
       @Override
       protected void start() {
-        results = new FixedBitSet(maxDoc);
+        results = new DocIdSetBuilder(maxDoc);
       }
 
       @Override
       protected DocIdSet finish() {
-        return new BitDocIdSet(results);
+        return results.build();
       }
 
       @Override