Package org.apache.lucene.facet.search.results

Examples of org.apache.lucene.facet.search.results.MutableFacetResultNode


          e);
    }
   
    FacetRequest origFrq = sampledFreq.orig;

    MutableFacetResultNode trimmedRootNode = MutableFacetResultNode.toImpl(facetResult.getFacetResultNode());
    trimmedRootNode.trimSubResults(origFrq.getNumResults());
   
    return new FacetResult(origFrq, trimmedRootNode, facetResult.getNumValidDescendants());
  }
View Full Code Here


  // following the accumulation by Sampling.
  // so now we test and re-order if necessary.
  public FacetResult rearrangeFacetResult(FacetResult facetResult) {
    PriorityQueue<FacetResultNode> nodesHeap =
      new ResultNodeHeap(this.facetRequest.getNumResults(), this.getSuitableACComparator());
    MutableFacetResultNode topFrn = (MutableFacetResultNode) facetResult.getFacetResultNode(); // safe cast
    rearrangeChilrenOfNode(topFrn, nodesHeap);
    return facetResult;
  }
View Full Code Here

    }
    double value = Double.NaN;
    if (tmp.isRootNodeIncluded) {
      value = tmp.rootNodeValue;
    }
    MutableFacetResultNode root = generateNode (ordinal, value, tmp.mapToAACOs);
    return new FacetResult (tmp.facetRequest, root, tmp.totalNumOfFacetsConsidered);

  }
View Full Code Here

    return new FacetResult (tmp.facetRequest, root, tmp.totalNumOfFacetsConsidered);

  }

  private MutableFacetResultNode generateNode (int ordinal, double val,  IntToObjectMap<AACO> mapToAACOs) {
    MutableFacetResultNode node = new MutableFacetResultNode(ordinal, val);
    AACO aaco = mapToAACOs.get(ordinal);
    if (null == aaco) {
      return node;
    }
    List<FacetResultNode> list = new ArrayList<FacetResultNode>();
    for (int i = 0; i < aaco.ordinals.length; i++) {
      list.add(generateNode(aaco.ordinals[i], aaco.values[i], mapToAACOs));
    }
    node.setSubResults(list);
    node.setResidue(aaco.residue);
    return node; 
  }
View Full Code Here

        int partitionSize = facetArrays.getArraysLength();
        value = facetRequest.getValueOf(facetArrays, ordinal % partitionSize);
      }
     
      // TODO (Facet): should initial value of "residue" depend on aggregator if not sum?
      MutableFacetResultNode parentResultNode =
        new MutableFacetResultNode(ordinal, value);
     
      Heap<FacetResultNode> heap = ResultSortUtils.createSuitableHeap(facetRequest);
      int totalFacets = heapDescendants(ordinal, heap, parentResultNode, facetArrays, offset);
      res = new TopKFacetResult(facetRequest, parentResultNode, totalFacets);
      res.setHeap(heap);
View Full Code Here

  // merge given top K results into current
  @Override
  public IntermediateFacetResult mergeResults(IntermediateFacetResult... tmpResults) throws IOException {
   
    int ordinal = taxonomyReader.getOrdinal(facetRequest.getCategoryPath());
    MutableFacetResultNode resNode = new MutableFacetResultNode(ordinal, 0);
   
    int totalFacets = 0;
    Heap<FacetResultNode> heap = null;
   
    // merge other results in queue
    for (IntermediateFacetResult tmpFres : tmpResults) {
      // cast should succeed
      TopKFacetResult fres = (TopKFacetResult) tmpFres;
      totalFacets += fres.getNumValidDescendants();
      // set the value for the result node representing the facet request
      resNode.increaseValue(fres.getFacetResultNode().getValue());
      Heap<FacetResultNode> tmpHeap = fres.getHeap();
      if (heap == null) {
        heap = tmpHeap;
        continue;
      }
      // bring sub results from heap of tmp res into result heap
      for (int i = tmpHeap.size(); i > 0; i--) {
       
        FacetResultNode a = heap.insertWithOverflow(tmpHeap.pop());
        if (a != null) {
          resNode.increaseResidue(a.getResidue());
        }
      }
    }
   
    TopKFacetResult res = new TopKFacetResult(facetRequest, resNode, totalFacets);
View Full Code Here

        int relativeOrdinal = tosOrdinal % partitionSize;
        double value = facetRequest.getValueOf(facetArrays, relativeOrdinal);
        if (value != 0 && !Double.isNaN(value)) {
          // Count current ordinal -- the TOS
          if (reusable == null) {
            reusable = new MutableFacetResultNode(tosOrdinal, value);
          } else {
            // it is safe to cast since reusable was created here.
            ((MutableFacetResultNode)reusable).reset(tosOrdinal, value);
          }
          ++childrenCounter;
View Full Code Here

  @Override
  public FacetResult renderFacetResult(IntermediateFacetResult tmpResult) {
    TopKFacetResult res = (TopKFacetResult) tmpResult; // cast is safe by contract of this class
    if (res != null) {
      Heap<FacetResultNode> heap = res.getHeap();
      MutableFacetResultNode resNode = (MutableFacetResultNode)res.getFacetResultNode(); // cast safe too
      for (int i = heap.size(); i > 0; i--) {
        resNode.insertSubResult(heap.pop());
      }
    }
    return res;
  }
View Full Code Here

  @Override
  public FacetResult rearrangeFacetResult(FacetResult facetResult) {
    TopKFacetResult res = (TopKFacetResult) facetResult; // cast is safe by contract of this class
    Heap<FacetResultNode> heap = res.getHeap();
    heap.clear(); // just to be safe
    MutableFacetResultNode topFrn = (MutableFacetResultNode) res.getFacetResultNode(); // safe cast
    for (FacetResultNode frn : topFrn.getSubResults()) {
      heap.add(frn);
    }
    int size = heap.size();
    ArrayList<FacetResultNode> subResults = new ArrayList<FacetResultNode>(size);
    for (int i = heap.size(); i > 0; i--) {
      subResults.add(0,heap.pop());
    }
    topFrn.setSubResults(subResults);
    return res;
  }
View Full Code Here

          e);
    }
   
    FacetRequest origFrq = sampledFreq.orig;

    MutableFacetResultNode trimmedRootNode = MutableFacetResultNode.toImpl(facetResult.getFacetResultNode());
    trimmedRootNode.trimSubResults(origFrq.getNumResults());
   
    return new FacetResult(origFrq, trimmedRootNode, facetResult.getNumValidDescendants());
  }
View Full Code Here

TOP

Related Classes of org.apache.lucene.facet.search.results.MutableFacetResultNode

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.