/* * Copyright 2004 The Apache Software Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ using System; namespace Lucene.Net.Search { /// Expert: Implements scoring for a class of queries. public abstract class Scorer { private Similarity similarity; /// Constructs a Scorer. protected internal Scorer(Similarity similarity) { this.similarity = similarity; } /// Returns the Similarity implementation used by this scorer. public virtual Similarity GetSimilarity() { return this.similarity; } /// Scores all documents and passes them to a collector. public virtual void Score(HitCollector hc) { while (Next()) { hc.Collect(Doc(), Score()); } } /// Advance to the next document matching the query. Returns true iff there /// is another match. /// public abstract bool Next(); /// Returns the current document number. Initially invalid, until {@link /// #Next()} is called the first time. /// public abstract int Doc(); /// Returns the score of the current document. Initially invalid, until /// {@link #Next()} is called the first time. /// public abstract float Score(); /// Skips to the first match beyond the current whose document number is /// greater than or equal to target.

Returns true iff there is such /// a match.

Behaves as if written:

		/// boolean SkipTo(int target) {
		/// do {
		/// if (!next())
		/// return false;
		/// } while (target > doc());
		/// return true;
		/// }
		/// 
/// Most implementations are considerably more efficient than that. ///
public abstract bool SkipTo(int target); /// Returns an explanation of the score for doc. public abstract Explanation Explain(int doc); } }