/**
*
*/
package querqy.lucene.rewrite;
import java.io.IOException;
import org.apache.lucene.index.Term;
import org.apache.lucene.search.TermQuery;
/**
* @author rene
*
*/
public class TermQueryFactory implements LuceneQueryFactory<TermQuery> {
protected final Term term;
public TermQueryFactory(Term term) {
this.term = term;
}
@Override
public void prepareDocumentFrequencyCorrection(DocumentFrequencyAndTermContextProvider dftcp, boolean isBelowDMQ) {
if (dftcp != null) {
if (!isBelowDMQ) {
// a TQ might end up directly under a BQ as an optimisation
// make sure, we start a new clause in df correction
dftcp.newClause();
}
dftcp.prepareTerm(term);
}
}
@Override
public TermQuery createQuery(FieldBoost boost, float dmqTieBreakerMultiplier, DocumentFrequencyAndTermContextProvider dftcp)
throws IOException {
return dftcp != null
? new DependentTermQuery(term, dftcp, boost)
: new TermBoostQuery(term, boost)
;
}
}