Skip to content

Query Processing

Michał Siedlaczek edited this page Nov 11, 2018 · 5 revisions

Scorer Concept

template<class Frequency>
struct PostingScorer {
    double operator()(Frequency freq);
};

template<class Document, class Frequency>
struct TermScorer {
    PostingScorer<Frequency> operator()(Document doc);
};

template<class TermId, class Document, class Frequency>
struct IndexScorer {
    TermScorer<Document, Frequency> operator()(TermId term);
};

Term at a Time

template<class T>
// requires ScoredPostingList<T>
taat(span<T> postings);

template<class T, class F>
// requires UnscoredPostingList<T> && TermScoreFn<F>
taat(span<T> postings, span<F> score_fn);

Document at a Time

template<class T>
// requires ScoredPostingList<T>
daat(span<T> postings);

template<class T, class F>
// requires UnscoredPostingList<T> && TermScoreFn<F>
daat(span<T> postings, span<F> score_fn);

WAND

template<class T>
// requires ScoredPostingList<T>
wand(span<T> postings);

template<class T, class F>
// requires UnscoredPostingList<T> && TermScoreFn<F>
wand(span<T> postings, span<F> score_fn);
Clone this wiki locally