public virtual Scorer Scorer(Monodoc.Lucene.Net.Index.IndexReader reader) { if (Enclosing_Instance.termArrays.Count == 0) // optimize zero-term case return null; TermPositions[] tps = new TermPositions[Enclosing_Instance.termArrays.Count]; for (int i = 0; i < tps.Length; i++) { Term[] terms = (Term[]) Enclosing_Instance.termArrays[i]; TermPositions p; if (terms.Length > 1) p = new MultipleTermPositions(reader, terms); else p = reader.TermPositions(terms[0]); if (p == null) return null; tps[i] = p; } if (Enclosing_Instance.slop == 0) return new ExactPhraseScorer(this, tps, Enclosing_Instance.GetPositions(), Enclosing_Instance.GetSimilarity(searcher), reader.Norms(Enclosing_Instance.field)); else return new SloppyPhraseScorer(this, tps, Enclosing_Instance.GetPositions(), Enclosing_Instance.GetSimilarity(searcher), Enclosing_Instance.slop, reader.Norms(Enclosing_Instance.field)); }
public virtual Scorer Scorer(Monodoc.Lucene.Net.Index.IndexReader reader) { if (Enclosing_Instance.terms.Count == 0) // optimize zero-term case return null; TermPositions[] tps = new TermPositions[Enclosing_Instance.terms.Count]; for (int i = 0; i < Enclosing_Instance.terms.Count; i++) { TermPositions p = reader.TermPositions((Term) Enclosing_Instance.terms[i]); if (p == null) return null; tps[i] = p; } if (Enclosing_Instance.slop == 0) // optimize exact case return new ExactPhraseScorer(this, tps, Enclosing_Instance.GetPositions(), Enclosing_Instance.GetSimilarity(searcher), reader.Norms(Enclosing_Instance.field)); else return new SloppyPhraseScorer(this, tps, Enclosing_Instance.GetPositions(), Enclosing_Instance.GetSimilarity(searcher), Enclosing_Instance.slop, reader.Norms(Enclosing_Instance.field)); }
/// <summary> Creates a new <code>MultipleTermPositions</code> instance. /// /// </summary> /// <param name="indexReader">an <code>Monodoc.Lucene.Net.Index.IndexReader</code> value /// </param> /// <param name="terms">a <code>Term[]</code> value /// </param> /// <exception cref=""> IOException if an error occurs /// </exception> public MultipleTermPositions(Monodoc.Lucene.Net.Index.IndexReader indexReader, Term[] terms) { System.Collections.IList termPositions = new System.Collections.ArrayList(); for (int i = 0; i < terms.Length; i++) termPositions.Add(indexReader.TermPositions(terms[i])); _termPositionsQueue = new TermPositionsQueue(termPositions); _posList = new IntQueue(); }
protected internal override TermDocs TermDocs(Monodoc.Lucene.Net.Index.IndexReader reader) { return (TermDocs) reader.TermPositions(); }
private void InitBlock(Monodoc.Lucene.Net.Index.IndexReader reader, SpanTermQuery enclosingInstance) { this.reader = reader; this.enclosingInstance = enclosingInstance; positions = reader.TermPositions(Enclosing_Instance.term); }