public abstract Query Rewrite(Query query);
public abstract Explanation Explain(Weight weight, int doc);
/// <summary>Expert: Constructs and initializes a Weight for a top-level query. </summary> public virtual Weight Weight(Searcher searcher) { Query query = searcher.Rewrite(this); Weight weight = query.CreateWeight(searcher); float sum = weight.SumOfSquaredWeights(); float norm = GetSimilarity(searcher).QueryNorm(sum); weight.Normalize(norm); return(weight); }