it.unimi.di.mg4j.search.score
Class AbstractWeightedScorer

java.lang.Object
  extended by it.unimi.di.mg4j.search.score.AbstractScorer
      extended by it.unimi.di.mg4j.search.score.AbstractWeightedScorer
All Implemented Interfaces:
Scorer, FlyweightPrototype<Scorer>
Direct Known Subclasses:
BM25FScorer, BM25Scorer, ClarkeCormackScorer, CountScorer, TfIdfScorer, VignaScorer

public abstract class AbstractWeightedScorer
extends AbstractScorer

An abstract subclass of AbstractScorer providing internal storage and copy of the weight map and a default implementation of score().

Warning: implementing subclasses must implement Scorer.copy() so that the state of the weight map is replicated, too.


Field Summary
protected  Reference2DoubleOpenHashMap<Index> index2Weight
          A map associating a weight with each index.
 
Fields inherited from class it.unimi.di.mg4j.search.score.AbstractScorer
documentIterator, indexIterator
 
Constructor Summary
AbstractWeightedScorer()
           
 
Method Summary
 Reference2DoubleMap<Index> getWeights()
          Returns an empty map.
 double score()
          Computes a score by calling Scorer.score(Index) for each index in the current document iterator, and adding the weighted results.
 boolean setWeights(Reference2DoubleMap<Index> index2Weight)
          Copies the argument internally, rescaling weights so they sum up to one.
 void wrap(DocumentIterator documentIterator)
          Wraps the given document iterator.
 
Methods inherited from class it.unimi.di.mg4j.search.score.AbstractScorer
nextDocument
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface it.unimi.di.mg4j.search.score.Scorer
copy, score, usesIntervals
 

Field Detail

index2Weight

protected Reference2DoubleOpenHashMap<Index> index2Weight
A map associating a weight with each index.

Constructor Detail

AbstractWeightedScorer

public AbstractWeightedScorer()
Method Detail

setWeights

public boolean setWeights(Reference2DoubleMap<Index> index2Weight)
Copies the argument internally, rescaling weights so they sum up to one.

Specified by:
setWeights in interface Scorer
Overrides:
setWeights in class AbstractScorer
Parameters:
index2Weight - the new map from indices to weights.
Returns:
true.

getWeights

public final Reference2DoubleMap<Index> getWeights()
Description copied from class: AbstractScorer
Returns an empty map.

Specified by:
getWeights in interface Scorer
Overrides:
getWeights in class AbstractScorer
Returns:
a copy of the weight map of this scorer.

score

public double score()
             throws IOException
Computes a score by calling Scorer.score(Index) for each index in the current document iterator, and adding the weighted results.

Returns:
the combined weighted score.
Throws:
IOException

wrap

public void wrap(DocumentIterator documentIterator)
          throws IOException
Description copied from class: AbstractScorer
Wraps the given document iterator.

This method records internally the provided iterator.

Specified by:
wrap in interface Scorer
Overrides:
wrap in class AbstractScorer
Parameters:
documentIterator - the document iterator that will be used in subsequent calls to Scorer.score() and Scorer.score(Index).
Throws:
IOException