You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by yo...@apache.org on 2015/05/20 23:34:20 UTC

svn commit: r1680682 - in /lucene/dev/branches/branch_5x: ./ solr/ solr/core/ solr/core/src/java/org/apache/solr/search/facet/

Author: yonik
Date: Wed May 20 21:34:20 2015
New Revision: 1680682

URL: http://svn.apache.org/r1680682
Log:
SOLR-7578: pass merge context to facet mergers

Modified:
    lucene/dev/branches/branch_5x/   (props changed)
    lucene/dev/branches/branch_5x/solr/   (props changed)
    lucene/dev/branches/branch_5x/solr/core/   (props changed)
    lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/facet/AvgAgg.java
    lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/facet/FacetModule.java
    lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/facet/HLLAgg.java
    lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/facet/MaxAgg.java
    lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/facet/MinAgg.java
    lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/facet/PercentileAgg.java
    lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/facet/SumAgg.java
    lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/facet/UniqueAgg.java

Modified: lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/facet/AvgAgg.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/facet/AvgAgg.java?rev=1680682&r1=1680681&r2=1680682&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/facet/AvgAgg.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/facet/AvgAgg.java Wed May 20 21:34:20 2015
@@ -43,7 +43,7 @@ public class AvgAgg extends SimpleAggVal
     double sum;
 
     @Override
-    public void merge(Object facetResult) {
+    public void merge(Object facetResult, Context mcontext1) {
       List<Number> numberList = (List<Number>)facetResult;
       num += numberList.get(0).longValue();
       sum += numberList.get(1).doubleValue();

Modified: lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/facet/FacetModule.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/facet/FacetModule.java?rev=1680682&r1=1680681&r2=1680682&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/facet/FacetModule.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/facet/FacetModule.java Wed May 20 21:34:20 2015
@@ -174,7 +174,7 @@ public class FacetModule extends SearchC
       if (facetState.merger == null) {
         facetState.merger = facetState.facetRequest.createFacetMerger(facet);
       }
-      facetState.merger.merge(facet);
+      facetState.merger.merge(facet , new FacetMerger.Context());
     }
   }
 
@@ -222,8 +222,13 @@ class FacetComponentState {
 //
 
 abstract class FacetMerger {
-  public abstract void merge(Object facetResult);
+  public abstract void merge(Object facetResult, Context mcontext);
   public abstract Object getMergedResult();
+
+  public static class Context {
+    FacetComponentState state;  // todo: is this needed?
+    Object root;
+  }
 }
 
 
@@ -239,7 +244,7 @@ abstract class FacetSortableMerger exten
 
 abstract class FacetDoubleMerger extends FacetSortableMerger {
   @Override
-  public abstract void merge(Object facetResult);
+  public abstract void merge(Object facetResult, Context mcontext);
 
   protected abstract double getDouble();
 
@@ -283,7 +288,7 @@ class FacetLongMerger extends FacetSorta
   long val;
 
   @Override
-  public void merge(Object facetResult) {
+  public void merge(Object facetResult, Context mcontext) {
     val += ((Number)facetResult).longValue();
   }
 
@@ -339,11 +344,11 @@ class FacetQueryMerger extends FacetBuck
   }
 
   @Override
-  public void merge(Object facet) {
+  public void merge(Object facet, Context mcontext) {
     if (bucket == null) {
       bucket = newBucket(null);
     }
-    bucket.mergeBucket((SimpleOrderedMap) facet);
+    bucket.mergeBucket((SimpleOrderedMap) facet, mcontext);
   }
 
   @Override
@@ -394,7 +399,7 @@ class FacetBucket {
     return merger;
   }
 
-  public void mergeBucket(SimpleOrderedMap bucket) {
+  public void mergeBucket(SimpleOrderedMap bucket, FacetMerger.Context mcontext) {
     // todo: for refinements, we want to recurse, but not re-do stats for intermediate buckets
 
     // drive merging off the received bucket?
@@ -413,7 +418,7 @@ class FacetBucket {
       FacetMerger merger = getMerger(key, val);
 
       if (merger != null) {
-        merger.merge( val );
+        merger.merge( val , mcontext );
       }
     }
   }
@@ -464,18 +469,18 @@ class FacetFieldMerger extends FacetBuck
   }
 
   @Override
-  public void merge(Object facetResult) {
-    merge((SimpleOrderedMap)facetResult);
+  public void merge(Object facetResult, Context mcontext) {
+    merge((SimpleOrderedMap)facetResult, mcontext);
   }
 
-  public void merge(SimpleOrderedMap facetResult) {
+  protected void merge(SimpleOrderedMap facetResult, Context mcontext) {
     if (freq.missing) {
       Object o = facetResult.get("missing");
       if (o != null) {
         if (missingBucket == null) {
           missingBucket = newBucket(null);
         }
-        missingBucket.mergeBucket((SimpleOrderedMap)o);
+        missingBucket.mergeBucket((SimpleOrderedMap)o , mcontext);
       }
     }
 
@@ -485,13 +490,13 @@ class FacetFieldMerger extends FacetBuck
         if (allBuckets == null) {
           allBuckets = newBucket(null);
         }
-        allBuckets.mergeBucket((SimpleOrderedMap)o);
+        allBuckets.mergeBucket((SimpleOrderedMap)o , mcontext);
       }
     }
 
     List<SimpleOrderedMap> bucketList = (List<SimpleOrderedMap>) facetResult.get("buckets");
     numReturnedBuckets += bucketList.size();
-    mergeBucketList(bucketList);
+    mergeBucketList(bucketList , mcontext);
 
     if (freq.numBuckets) {
       Object nb = facetResult.get("numBuckets");
@@ -499,13 +504,13 @@ class FacetFieldMerger extends FacetBuck
         if (numBuckets == null) {
           numBuckets = new FacetNumBucketsMerger();
         }
-        numBuckets.merge(nb);
+        numBuckets.merge(nb , mcontext);
       }
     }
 
   }
 
-  public void mergeBucketList(List<SimpleOrderedMap> bucketList) {
+  public void mergeBucketList(List<SimpleOrderedMap> bucketList, Context mcontext) {
     for (SimpleOrderedMap bucketRes : bucketList) {
       Comparable bucketVal = (Comparable)bucketRes.get("val");
       FacetBucket bucket = buckets.get(bucketVal);
@@ -513,7 +518,7 @@ class FacetFieldMerger extends FacetBuck
         bucket = newBucket(bucketVal);
         buckets.put(bucketVal, bucket);
       }
-      bucket.mergeBucket( bucketRes );
+      bucket.mergeBucket( bucketRes , mcontext );
     }
   }
 
@@ -682,7 +687,7 @@ class FacetFieldMerger extends FacetBuck
     Set<Object> values;
 
     @Override
-    public void merge(Object facetResult) {
+    public void merge(Object facetResult, Context mcontext) {
       SimpleOrderedMap map = (SimpleOrderedMap)facetResult;
       long numBuckets = ((Number)map.get("numBuckets")).longValue();
       sumBuckets += numBuckets;
@@ -735,11 +740,11 @@ class FacetRangeMerger extends FacetBuck
   }
 
   @Override
-  public void merge(Object facetResult) {
-    merge((SimpleOrderedMap) facetResult);
+  public void merge(Object facetResult, Context mcontext) {
+    merge((SimpleOrderedMap) facetResult , mcontext);
   }
 
-  public void merge(SimpleOrderedMap facetResult) {
+  public void merge(SimpleOrderedMap facetResult, Context mcontext) {
     boolean all = freq.others.contains(FacetParams.FacetRangeOther.ALL);
 
     if (all || freq.others.contains(FacetParams.FacetRangeOther.BEFORE)) {
@@ -748,7 +753,7 @@ class FacetRangeMerger extends FacetBuck
         if (beforeBucket == null) {
           beforeBucket = newBucket(null);
         }
-        beforeBucket.mergeBucket((SimpleOrderedMap)o);
+        beforeBucket.mergeBucket((SimpleOrderedMap)o, mcontext);
       }
     }
 
@@ -758,7 +763,7 @@ class FacetRangeMerger extends FacetBuck
         if (afterBucket == null) {
           afterBucket = newBucket(null);
         }
-        afterBucket.mergeBucket((SimpleOrderedMap)o);
+        afterBucket.mergeBucket((SimpleOrderedMap)o , mcontext);
       }
     }
 
@@ -768,16 +773,16 @@ class FacetRangeMerger extends FacetBuck
         if (betweenBucket == null) {
           betweenBucket = newBucket(null);
         }
-        betweenBucket.mergeBucket((SimpleOrderedMap)o);
+        betweenBucket.mergeBucket((SimpleOrderedMap)o , mcontext);
       }
     }
 
     List<SimpleOrderedMap> bucketList = (List<SimpleOrderedMap>) facetResult.get("buckets");
-    mergeBucketList(bucketList);
+    mergeBucketList(bucketList , mcontext);
   }
 
   // TODO: share more merging with field faceting
-  public void mergeBucketList(List<SimpleOrderedMap> bucketList) {
+  public void mergeBucketList(List<SimpleOrderedMap> bucketList, Context mcontext) {
     for (SimpleOrderedMap bucketRes : bucketList) {
       Comparable bucketVal = (Comparable)bucketRes.get("val");
       FacetBucket bucket = buckets.get(bucketVal);
@@ -785,7 +790,7 @@ class FacetRangeMerger extends FacetBuck
         bucket = newBucket(bucketVal);
         buckets.put(bucketVal, bucket);
       }
-      bucket.mergeBucket( bucketRes );
+      bucket.mergeBucket( bucketRes , mcontext );
     }
   }
 

Modified: lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/facet/HLLAgg.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/facet/HLLAgg.java?rev=1680682&r1=1680681&r2=1680682&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/facet/HLLAgg.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/facet/HLLAgg.java Wed May 20 21:34:20 2015
@@ -81,7 +81,7 @@ public class HLLAgg extends StrAggValueS
     long answer = -1;
 
     @Override
-    public void merge(Object facetResult) {
+    public void merge(Object facetResult, Context mcontext) {
       SimpleOrderedMap map = (SimpleOrderedMap)facetResult;
       byte[] serialized = ((byte[])map.get("hll"));
       HLL subHLL = HLL.fromBytes(serialized);

Modified: lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/facet/MaxAgg.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/facet/MaxAgg.java?rev=1680682&r1=1680681&r2=1680682&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/facet/MaxAgg.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/facet/MaxAgg.java Wed May 20 21:34:20 2015
@@ -41,7 +41,7 @@ public class MaxAgg extends SimpleAggVal
     double val = Double.NaN;
 
     @Override
-    public void merge(Object facetResult) {
+    public void merge(Object facetResult, Context mcontext) {
       double result = ((Number)facetResult).doubleValue();
       if (result > val || Double.isNaN(val)) {
         val = result;

Modified: lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/facet/MinAgg.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/facet/MinAgg.java?rev=1680682&r1=1680681&r2=1680682&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/facet/MinAgg.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/facet/MinAgg.java Wed May 20 21:34:20 2015
@@ -40,7 +40,7 @@ public class MinAgg extends SimpleAggVal
     double val = Double.NaN;
 
     @Override
-    public void merge(Object facetResult) {
+    public void merge(Object facetResult, Context mcontext) {
       double result = ((Number)facetResult).doubleValue();
       if (result < val || Double.isNaN(val)) {
         val = result;

Modified: lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/facet/PercentileAgg.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/facet/PercentileAgg.java?rev=1680682&r1=1680681&r2=1680682&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/facet/PercentileAgg.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/facet/PercentileAgg.java Wed May 20 21:34:20 2015
@@ -191,7 +191,7 @@ public class PercentileAgg extends Simpl
     protected Double sortVal;
 
     @Override
-    public void merge(Object facetResult) {
+    public void merge(Object facetResult, Context mcontext) {
       byte[] arr = (byte[])facetResult;
       AVLTreeDigest subDigest = AVLTreeDigest.fromBytes(ByteBuffer.wrap(arr));
       if (digest == null) {

Modified: lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/facet/SumAgg.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/facet/SumAgg.java?rev=1680682&r1=1680681&r2=1680682&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/facet/SumAgg.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/facet/SumAgg.java Wed May 20 21:34:20 2015
@@ -41,7 +41,7 @@ public class SumAgg extends SimpleAggVal
     double val;
 
     @Override
-    public void merge(Object facetResult) {
+    public void merge(Object facetResult, Context mcontext) {
       val += ((Number)facetResult).doubleValue();
     }
 

Modified: lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/facet/UniqueAgg.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/facet/UniqueAgg.java?rev=1680682&r1=1680681&r2=1680682&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/facet/UniqueAgg.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/search/facet/UniqueAgg.java Wed May 20 21:34:20 2015
@@ -72,7 +72,7 @@ public class UniqueAgg extends StrAggVal
     long shardsMissingMax;
 
     @Override
-    public void merge(Object facetResult) {
+    public void merge(Object facetResult, Context mcontext) {
       SimpleOrderedMap map = (SimpleOrderedMap)facetResult;
       long unique = ((Number)map.get("unique")).longValue();
       sumUnique += unique;