+++ /dev/null
-package org.apache.lucene.facet.search.sampling;
-
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * Parameters for sampling, dictating whether sampling is to take place and how.
- *
- * @lucene.experimental
- */
-public class SamplingParams {
-
- /**
- * Default factor by which more results are requested over the sample set.
- * @see SamplingParams#getOversampleFactor()
- */
- public static final double DEFAULT_OVERSAMPLE_FACTOR = 2d;
-
- /**
- * Default ratio between size of sample to original size of document set.
- * @see Sampler#getSampleSet(org.apache.lucene.facet.search.ScoredDocIDs)
- */
- public static final double DEFAULT_SAMPLE_RATIO = 0.01;
-
- /**
- * Default maximum size of sample.
- * @see Sampler#getSampleSet(org.apache.lucene.facet.search.ScoredDocIDs)
- */
- public static final int DEFAULT_MAX_SAMPLE_SIZE = 10000;
-
- /**
- * Default minimum size of sample.
- * @see Sampler#getSampleSet(org.apache.lucene.facet.search.ScoredDocIDs)
- */
- public static final int DEFAULT_MIN_SAMPLE_SIZE = 100;
-
- /**
- * Default sampling threshold, if number of results is less than this number - no sampling will take place
- * @see SamplingParams#getSampleRatio()
- */
- public static final int DEFAULT_SAMPLING_THRESHOLD = 75000;
-
- private int maxSampleSize = DEFAULT_MAX_SAMPLE_SIZE;
- private int minSampleSize = DEFAULT_MIN_SAMPLE_SIZE;
- private double sampleRatio = DEFAULT_SAMPLE_RATIO;
- private int samplingThreshold = DEFAULT_SAMPLING_THRESHOLD;
- private double oversampleFactor = DEFAULT_OVERSAMPLE_FACTOR;
-
- /**
- * Return the maxSampleSize.
- * In no case should the resulting sample size exceed this value.
- * @see Sampler#getSampleSet(org.apache.lucene.facet.search.ScoredDocIDs)
- */
- public final int getMaxSampleSize() {
- return maxSampleSize;
- }
-
- /**
- * Return the minSampleSize.
- * In no case should the resulting sample size be smaller than this value.
- * @see Sampler#getSampleSet(org.apache.lucene.facet.search.ScoredDocIDs)
- */
- public final int getMinSampleSize() {
- return minSampleSize;
- }
-
- /**
- * @return the sampleRatio
- * @see Sampler#getSampleSet(org.apache.lucene.facet.search.ScoredDocIDs)
- */
- public final double getSampleRatio() {
- return sampleRatio;
- }
-
- /**
- * Return the samplingThreshold.
- * Sampling would be performed only for document sets larger than this.
- */
- public final int getSamplingThreshold() {
- return samplingThreshold;
- }
-
- /**
- * @param maxSampleSize
- * the maxSampleSize to set
- * @see #getMaxSampleSize()
- */
- public void setMaxSampleSize(int maxSampleSize) {
- this.maxSampleSize = maxSampleSize;
- }
-
- /**
- * @param minSampleSize
- * the minSampleSize to set
- * @see #getMinSampleSize()
- */
- public void setMinSampleSize(int minSampleSize) {
- this.minSampleSize = minSampleSize;
- }
-
- /**
- * @param sampleRatio
- * the sampleRatio to set
- * @see #getSampleRatio()
- */
- public void setSampleRatio(double sampleRatio) {
- this.sampleRatio = sampleRatio;
- }
-
- /**
- * Set a sampling-threshold
- * @see #getSamplingThreshold()
- */
- public void setSampingThreshold(int sampingThreshold) {
- this.samplingThreshold = sampingThreshold;
- }
-
- /**
- * Check validity of sampling settings, making sure that
- * <ul>
- * <li> <code>minSampleSize <= maxSampleSize <= samplingThreshold </code></li>
- * <li> <code>0 < samplingRatio <= 1 </code></li>
- * </ul>
- *
- * @return true if valid, false otherwise
- */
- public boolean validate() {
- return
- samplingThreshold >= maxSampleSize &&
- maxSampleSize >= minSampleSize &&
- sampleRatio > 0 &&
- sampleRatio < 1;
- }
-
- /**
- * Return the oversampleFactor. When sampling, we would collect that much more
- * results, so that later, when selecting top out of these, chances are higher
- * to get actual best results. Note that having this value larger than 1 only
- * makes sense when using a SampleFixer which finds accurate results, such as
- * <code>TakmiSampleFixer</code>. When this value is smaller than 1, it is
- * ignored and no oversampling takes place.
- */
- public final double getOversampleFactor() {
- return oversampleFactor;
- }
-
- /**
- * @param oversampleFactor the oversampleFactor to set
- * @see #getOversampleFactor()
- */
- public void setOversampleFactor(double oversampleFactor) {
- this.oversampleFactor = oversampleFactor;
- }
-
-}
\ No newline at end of file