本文整理汇总了Java中org.apache.lucene.index.FieldInvertState类的典型用法代码示例。如果您正苦于以下问题:Java FieldInvertState类的具体用法?Java FieldInvertState怎么用?Java FieldInvertState使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
FieldInvertState类属于org.apache.lucene.index包,在下文中一共展示了FieldInvertState类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: getNormValues
import org.apache.lucene.index.FieldInvertState; //导入依赖的package包/类
@Override
public NumericDocValues getNormValues(String field) {
FieldInfo fieldInfo = fieldInfos.get(field);
if (fieldInfo == null || fieldInfo.omitsNorms())
return null;
NumericDocValues norms = cachedNormValues;
Similarity sim = getSimilarity();
if (!field.equals(cachedFieldName) || sim != cachedSimilarity) { // not cached?
Info info = getInfo(field);
int numTokens = info != null ? info.numTokens : 0;
int numOverlapTokens = info != null ? info.numOverlapTokens : 0;
float boost = info != null ? info.getBoost() : 1.0f;
FieldInvertState invertState = new FieldInvertState(field, 0, numTokens, numOverlapTokens, 0, boost);
long value = sim.computeNorm(invertState);
norms = new MemoryIndexNormDocValues(value);
// cache it for future reuse
cachedNormValues = norms;
cachedFieldName = field;
cachedSimilarity = sim;
if (DEBUG) System.err.println("MemoryIndexReader.norms: " + field + ":" + value + ":" + numTokens);
}
return norms;
}
示例2: computeNorm
import org.apache.lucene.index.FieldInvertState; //导入依赖的package包/类
/** Encodes the document length in the same way as {@link TFIDFSimilarity}. */
@Override
public long computeNorm(FieldInvertState state) {
final float numTerms;
if (discountOverlaps)
numTerms = state.getLength() - state.getNumOverlap();
else
numTerms = state.getLength();
return encodeNormValue(state.getBoost(), numTerms);
}
示例3: lengthNorm
import org.apache.lucene.index.FieldInvertState; //导入依赖的package包/类
/** Implemented as
* <code>state.getBoost()*lengthNorm(numTerms)</code>, where
* <code>numTerms</code> is {@link FieldInvertState#getLength()} if {@link
* #setDiscountOverlaps} is false, else it's {@link
* FieldInvertState#getLength()} - {@link
* FieldInvertState#getNumOverlap()}.
*
* @lucene.experimental */
@Override
public float lengthNorm(FieldInvertState state) {
final int numTerms;
if (discountOverlaps)
numTerms = state.getLength() - state.getNumOverlap();
else
numTerms = state.getLength();
return state.getBoost() * ((float) (1.0 / Math.sqrt(numTerms)));
}
示例4: computeNorm
import org.apache.lucene.index.FieldInvertState; //导入依赖的package包/类
@Override
public final long computeNorm(FieldInvertState state) {
final float numTerms = discountOverlaps ? state.getLength() - state.getNumOverlap() : state.getLength();
// Dividing by the square of the boost is to mimic behavior of the old BM25 formula
final float boost = state.getBoost();
return (long) ( numTerms / (boost*boost) );
}
开发者ID:sebastian-hofstaetter,项目名称:ir-generalized-translation-models,代码行数:8,代码来源:BM25SimilarityLossless.java
示例5: lengthNorm
import org.apache.lucene.index.FieldInvertState; //导入依赖的package包/类
/** Implemented as
* <code>state.getBoost()*lengthNorm(numTerms)</code>, where
* <code>numTerms</code> is {@link org.apache.lucene.index.FieldInvertState#getLength()} if {@link
* #setDiscountOverlaps} is false, else it's {@link
* org.apache.lucene.index.FieldInvertState#getLength()} - {@link
* org.apache.lucene.index.FieldInvertState#getNumOverlap()}.
*
* @lucene.experimental */
@Override
public float lengthNorm(FieldInvertState state) {
final int numTerms;
if (discountOverlaps)
numTerms = state.getLength() - state.getNumOverlap();
else
numTerms = state.getLength();
return state.getBoost() * ((float) (1.0 / Math.sqrt(numTerms)));
}
示例6: lengthNorm
import org.apache.lucene.index.FieldInvertState; //导入依赖的package包/类
/** Implemented as
* <code>state.getBoost()*lengthNorm(numTerms)</code>, where
* <code>numTerms</code> is {@link org.apache.lucene.index.FieldInvertState#getLength()} if {@link
* #setDiscountOverlaps} is false, else it's {@link
* org.apache.lucene.index.FieldInvertState#getLength()} - {@link
* org.apache.lucene.index.FieldInvertState#getNumOverlap()}.
*
* @lucene.experimental */
@Override
public float lengthNorm(FieldInvertState state) {
final int numTerms;
if (discountOverlaps) {
numTerms = state.getLength() - state.getNumOverlap();
} else {
numTerms = state.getLength();
}
return state.getBoost() * ((float) (1.0 / Math.sqrt(numTerms)));
}
示例7: lengthNorm
import org.apache.lucene.index.FieldInvertState; //导入依赖的package包/类
/**
* Implemented as <code> state.getBoost() *
* computeLengthNorm(numTokens) </code> where
* numTokens does not count overlap tokens if
* discountOverlaps is true by default or true for this
* specific field.
*/
@Override
public float lengthNorm(FieldInvertState state) {
final int numTokens;
if (discountOverlaps)
numTokens = state.getLength() - state.getNumOverlap();
else
numTokens = state.getLength();
return state.getBoost() * computeLengthNorm(numTokens);
}
示例8: computeNorm
import org.apache.lucene.index.FieldInvertState; //导入依赖的package包/类
@Override
public long computeNorm(FieldInvertState state) {
if (state.getName().equals(NORMS_FIELD)) {
return Float.floatToIntBits(state.getBoost());
} else {
return in.computeNorm(state);
}
}
示例9: testDiscountOverlapsBoost
import org.apache.lucene.index.FieldInvertState; //导入依赖的package包/类
public void testDiscountOverlapsBoost() throws IOException {
DefaultSimilarity expected = new DefaultSimilarity();
SimilarityBase actual = new DFRSimilarity(new BasicModelIne(), new AfterEffectB(), new NormalizationH2());
expected.setDiscountOverlaps(false);
actual.setDiscountOverlaps(false);
FieldInvertState state = new FieldInvertState("foo");
state.setLength(5);
state.setNumOverlap(2);
state.setBoost(3);
assertEquals(expected.computeNorm(state), actual.computeNorm(state));
expected.setDiscountOverlaps(true);
actual.setDiscountOverlaps(true);
assertEquals(expected.computeNorm(state), actual.computeNorm(state));
}
示例10: lengthNorm
import org.apache.lucene.index.FieldInvertState; //导入依赖的package包/类
/** Implemented as
* <code>state.getBoost()*lengthNorm(numTerms)</code>, where
* <code>numTerms</code> is {@link FieldInvertState#getLength()} if {@link
* #setDiscountOverlaps} is false, else it's {@link
* FieldInvertState#getLength()} - {@link
* FieldInvertState#getNumOverlap()}.
*
* @lucene.experimental */
@Override
public float lengthNorm(FieldInvertState state) {
final int numTerms;
if (discountOverlaps)
numTerms = state.getLength() - state.getNumOverlap();
else
numTerms = state.getLength();
return state.getBoost() * ((float) (1.0 / Math.sqrt(numTerms)));
}
示例11: computeNorm
import org.apache.lucene.index.FieldInvertState; //导入依赖的package包/类
/** Encodes the document length in the same way as {@link TFIDFSimilarity}. */
@Override
public long computeNorm(FieldInvertState state) {
final float numTerms;
if (discountOverlaps)
numTerms = state.getLength() - state.getNumOverlap();
else
numTerms = state.getLength() / state.getBoost();
return encodeNormValue(state.getBoost(), numTerms);
}
示例12: lengthNorm
import org.apache.lucene.index.FieldInvertState; //导入依赖的package包/类
/** Implemented as
* <code>state.getBoost()*lengthNorm(numTerms)</code>, where
* <code>numTerms</code> is {@link FieldInvertState#getLength()} if {@link
* #setDiscountOverlaps} is false, else it's {@link
* FieldInvertState#getLength()} - {@link
* FieldInvertState#getNumOverlap()}.
*
* @lucene.experimental */
@Override
public float lengthNorm(FieldInvertState state) {
final int numTerms;
if (discountOverlaps)
numTerms = state.getLength() - state.getNumOverlap();
else
numTerms = state.getLength();
return state.getBoost() * ((float) (1.0 / Math.sqrt(numTerms)));
}
示例13: computeNorm
import org.apache.lucene.index.FieldInvertState; //导入依赖的package包/类
@Override
final public float computeNorm(String field, FieldInvertState state) {
final int numTerms;
if (discountOverlaps)
numTerms = state.getLength() - state.getNumOverlap();
else
numTerms = state.getLength();
return state.getBoost() * ((float) (1.0 / numTerms));
}
示例14: computeNorm
import org.apache.lucene.index.FieldInvertState; //导入依赖的package包/类
@Override
public long computeNorm(FieldInvertState state) {
return delegate.computeNorm(state);
}
示例15: computeNorm
import org.apache.lucene.index.FieldInvertState; //导入依赖的package包/类
@Override
public final long computeNorm(FieldInvertState state) {
final int numTerms = discountOverlaps ? state.getLength() - state.getNumOverlap() : state.getLength();
return encodeNormValue(state.getBoost(), numTerms);
}