Package org.apache.lucene.facet.search

Examples of org.apache.lucene.facet.search.ScoredDocIDsIterator


   * @param sample The array in which to return the sample.
   * @param times The times of three events, for measuring performance.
   */
  private static void sample1(ScoredDocIDs collection, int collectionSize, int[] sample, long[] times)
  throws IOException {
    ScoredDocIDsIterator it = collection.iterator();
    if (returnTimings) {
      times[0] = System.currentTimeMillis();
    }
    int sampleSize = sample.length;
    int prime = findGoodStepSize(collectionSize, sampleSize);
    int mod = prime % collectionSize;
    if (returnTimings) {
      times[1] = System.currentTimeMillis();
    }
    int sampleCount = 0;
    int index = 0;
    for (; sampleCount < sampleSize;) {
      if (index + mod < collectionSize) {
        for (int i = 0; i < mod; i++, index++) {
          it.next();
        }
      } else {
        index = index + mod - collectionSize;
        it = collection.iterator();
        for (int i = 0; i < index; i++) {
          it.next();
        }
      }
      sample[sampleCount++] = it.getDocID();
    }
    if (returnTimings) {
      times[2] = System.currentTimeMillis();
    }
  }
View Full Code Here


    IntPriorityQueue pq = new IntPriorityQueue(sampleSize);
    /*
     * Convert every value in the collection to a hashed "weight" value, and insert
     * into a bounded PQ (retains only sampleSize highest weights).
     */
    ScoredDocIDsIterator it = collection.iterator();
    MI mi = null;
    while (it.next()) {
      if (mi == null) {
        mi = new MI();
      }
      mi.value = (int) (it.getDocID() * PHI_32) & 0x7FFFFFFF;
      mi = pq.insertWithOverflow(mi);
    }
    if (returnTimings) {
      times[1] = System.currentTimeMillis();
    }
View Full Code Here

  @Override
  protected SampleResult createSample(ScoredDocIDs docids, int actualSize, int sampleSetSize) throws IOException {
    final int[] sample = new int[sampleSetSize];
    final int maxStep = (actualSize * 2 ) / sampleSetSize; //floor
    int remaining = actualSize;
    ScoredDocIDsIterator it = docids.iterator();
    int i = 0;
    // select sample docs with random skipStep, make sure to leave sufficient #docs for selection after last skip
    while (i<sample.length && remaining>(sampleSetSize-maxStep-i)) {
      int skipStep = 1 + random.nextInt(maxStep);
      // Skip over 'skipStep' documents
      for (int j=0; j<skipStep; j++) {
        it.next();
        -- remaining;
      }
      sample[i++] = it.getDocID();
    }
    // Add leftover documents to the sample set
    while (i<sample.length) {
      it.next();
      sample[i++] = it.getDocID();
    }
    ScoredDocIDs sampleRes = ScoredDocIdsUtils.createScoredDocIDsSubset(docids, sample);
    SampleResult res = new SampleResult(sampleRes, sampleSetSize/(double)actualSize);
    return res;
  }
View Full Code Here

   * @param sample The array in which to return the sample.
   * @param times The times of three events, for measuring performance.
   */
  private static void sample1(ScoredDocIDs collection, int collectionSize, int[] sample, long[] times)
  throws IOException {
    ScoredDocIDsIterator it = collection.iterator();
    if (returnTimings) {
      times[0] = System.currentTimeMillis();
    }
    int sampleSize = sample.length;
    int prime = findGoodStepSize(collectionSize, sampleSize);
    int mod = prime % collectionSize;
    if (returnTimings) {
      times[1] = System.currentTimeMillis();
    }
    int sampleCount = 0;
    int index = 0;
    for (; sampleCount < sampleSize;) {
      if (index + mod < collectionSize) {
        for (int i = 0; i < mod; i++, index++) {
          it.next();
        }
      } else {
        index = index + mod - collectionSize;
        it = collection.iterator();
        for (int i = 0; i < index; i++) {
          it.next();
        }
      }
      sample[sampleCount++] = it.getDocID();
    }
    if (returnTimings) {
      times[2] = System.currentTimeMillis();
    }
  }
View Full Code Here

    IntPriorityQueue pq = new IntPriorityQueue(sampleSize);
    /*
     * Convert every value in the collection to a hashed "weight" value, and insert
     * into a bounded PQ (retains only sampleSize highest weights).
     */
    ScoredDocIDsIterator it = collection.iterator();
    while (it.next()) {
      pq.insertWithReuse((int)(it.getDocID() * PHI_32) & 0x7FFFFFFF);
    }
    if (returnTimings) {
      times[1] = System.currentTimeMillis();
    }
    /*
 
View Full Code Here

TOP

Related Classes of org.apache.lucene.facet.search.ScoredDocIDsIterator

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.