Currently, QueryExpansion.java is responsible for the full QE process - selecting documents, accessing direct file, adding terms to ExpansionTerms, and re-running the query.
I propose that we have an interface which selects the feedback documents for a given query, thus allowing Psuedo-Relevance Feedback and normal Relevance Feedback (as well as mixes - only using some of the documents in the feedback).
interface FeedbackSelector
{
public FeedbackDocument[] getFeedbackDocuments(Request r);
}
class FeedbackDocument
{
int docid;
int rank;
double score;
public int getDocid() {return docid;}
public int getRank() {return rank;}
public double getScore() {return score;}
}
Currently, QueryExpansion.java is responsible for the full QE process - selecting documents, accessing direct file, adding terms to ExpansionTerms, and re-running the query.
I propose that we have an interface which selects the feedback documents for a given query, thus allowing Psuedo-Relevance Feedback and normal Relevance Feedback (as well as mixes - only using some of the documents in the feedback).