Example usage for org.apache.lucene.search.similarities BM25Similarity setDiscountOverlaps

List of usage examples for org.apache.lucene.search.similarities BM25Similarity setDiscountOverlaps

Introduction

In this page you can find the example usage for org.apache.lucene.search.similarities BM25Similarity setDiscountOverlaps.

Prototype

public void setDiscountOverlaps(boolean v) 

Source Link

Document

Sets whether overlap tokens (Tokens with 0 position increment) are ignored when computing norm.

Usage

From source file:org.apache.solr.search.similarities.BM25SimilarityFactory.java

License:Apache License

@Override
public Similarity getSimilarity() {
    BM25Similarity sim = new BM25Similarity(k1, b);
    sim.setDiscountOverlaps(discountOverlaps);
    return sim;/*from   ww w  . j a  v a 2s  .c  om*/
}

From source file:org.elasticsearch.index.similarity.ScriptedSimilarityTests.java

License:Apache License

private void doTestSameNormsAsBM25(boolean discountOverlaps) {
    ScriptedSimilarity sim1 = new ScriptedSimilarity("foobar", null, "foobaz", null, discountOverlaps);
    BM25Similarity sim2 = new BM25Similarity();
    sim2.setDiscountOverlaps(discountOverlaps);
    for (int iter = 0; iter < 100; ++iter) {
        final int length = TestUtil.nextInt(random(), 1, 100);
        final int position = random().nextInt(length);
        final int numOverlaps = random().nextInt(length);
        FieldInvertState state = new FieldInvertState(Version.LATEST.major, "foo", position, length,
                numOverlaps, 100);/*  w ww.  ja  v a2  s . c  om*/
        assertEquals(sim2.computeNorm(state), sim1.computeNorm(state), 0f);
    }
}

From source file:org.elasticsearch.index.similarity.SimilarityProviders.java

License:Apache License

public static BM25Similarity createBM25Similarity(Settings settings, Version indexCreatedVersion) {
    assertSettingsIsSubsetOf("BM25", indexCreatedVersion, settings, "k1", "b", DISCOUNT_OVERLAPS);

    float k1 = settings.getAsFloat("k1", 1.2f);
    float b = settings.getAsFloat("b", 0.75f);
    boolean discountOverlaps = settings.getAsBoolean(DISCOUNT_OVERLAPS, true);

    BM25Similarity similarity = new BM25Similarity(k1, b);
    similarity.setDiscountOverlaps(discountOverlaps);
    return similarity;
}