internal SlowMinShouldMatchScorer(BooleanWeight weight, AtomicReader reader, IndexSearcher searcher) : base(weight) { this.Dv = reader.GetSortedSetDocValues("dv"); this.MaxDoc = reader.MaxDoc; BooleanQuery bq = (BooleanQuery)weight.Query; this.MinNrShouldMatch = bq.MinimumNumberShouldMatch; this.Sims = new SimScorer[(int)Dv.ValueCount]; foreach (BooleanClause clause in bq.Clauses) { Debug.Assert(!clause.Prohibited); Debug.Assert(!clause.Required); Term term = ((TermQuery)clause.Query).Term; long ord = Dv.LookupTerm(term.Bytes); if (ord >= 0) { bool success = Ords.Add(ord); Debug.Assert(success); // no dups TermContext context = TermContext.Build(reader.Context, term); SimWeight w = weight.Similarity.ComputeWeight(1f, searcher.CollectionStatistics("field"), searcher.TermStatistics(term, context)); var dummy = w.ValueForNormalization; // ignored w.Normalize(1F, 1F); Sims[(int)ord] = weight.Similarity.DoSimScorer(w, (AtomicReaderContext)reader.Context); } } }
public override SimScorer GetSimScorer(SimWeight stats, AtomicReaderContext context) { SimScorer sub = Sim.GetSimScorer(stats, context); FieldCache.Singles values = FieldCache.DEFAULT.GetSingles(context.AtomicReader, BoostField, false); return(new SimScorerAnonymousInnerClassHelper(this, sub, values)); }
public override SimWeight ComputeWeight(float queryBoost, CollectionStatistics collectionStats, params TermStatistics[] termStats) { SimWeight[] subStats = new SimWeight[m_sims.Length]; for (int i = 0; i < subStats.Length; i++) { subStats[i] = m_sims[i].ComputeWeight(queryBoost, collectionStats, termStats); } return(new MultiStats(subStats)); }
public override SimScorer GetSimScorer(SimWeight stats, AtomicReaderContext context) { SimScorer[] subScorers = new SimScorer[m_sims.Length]; for (int i = 0; i < subScorers.Length; i++) { subScorers[i] = m_sims[i].GetSimScorer(((MultiStats)stats).subStats[i], context); } return(new MultiSimScorer(subScorers)); }
public override SimScorer DoSimScorer(SimWeight stats, AtomicReaderContext context) { SimScorer[] subScorers = new SimScorer[Sims.Length]; for (int i = 0; i < subScorers.Length; i++) { subScorers[i] = Sims[i].DoSimScorer(((MultiStats)stats).SubStats[i], context); } return new MultiSimScorer(subScorers); }
public override SimWeight ComputeWeight(float queryBoost, CollectionStatistics collectionStats, params TermStatistics[] termStats) { SimWeight[] subStats = new SimWeight[Sims.Length]; for (int i = 0; i < subStats.Length; i++) { subStats[i] = Sims[i].ComputeWeight(queryBoost, collectionStats, termStats); } return new MultiStats(subStats); }
public override SimScorer DoSimScorer(SimWeight stats, AtomicReaderContext context) { if (stats is MultiSimilarity.MultiStats) { // a multi term query (e.g. phrase). return the summation, // scoring almost as if it were boolean query SimWeight[] subStats = ((MultiSimilarity.MultiStats)stats).SubStats; SimScorer[] subScorers = new SimScorer[subStats.Length]; for (int i = 0; i < subScorers.Length; i++) { BasicStats basicstats = (BasicStats)subStats[i]; subScorers[i] = new BasicSimScorer(this, basicstats, context.AtomicReader.GetNormValues(basicstats.field)); } return(new MultiSimilarity.MultiSimScorer(subScorers)); } else { BasicStats basicstats = (BasicStats)stats; return(new BasicSimScorer(this, basicstats, context.AtomicReader.GetNormValues(basicstats.field))); } }
/// <summary> /// Creates a new <seealso cref="Similarity.SimScorer"/> to score matching documents from a segment of the inverted index. </summary> /// <param name="weight"> collection information from <seealso cref="#computeWeight(float, CollectionStatistics, TermStatistics...)"/> </param> /// <param name="context"> segment of the inverted index to be scored. </param> /// <returns> SloppySimScorer for scoring documents across <code>context</code> </returns> /// <exception cref="IOException"> if there is a low-level I/O error </exception> public abstract SimScorer DoSimScorer(SimWeight weight, AtomicReaderContext context);
public override SimScorer GetSimScorer(SimWeight weight, AtomicReaderContext context) { return(new SimScorerAnonymousInnerClassHelper(this)); }
public override sealed SimScorer GetSimScorer(SimWeight weight, AtomicReaderContext context) { PerFieldSimWeight perFieldWeight = (PerFieldSimWeight)weight; return([email protected](perFieldWeight.delegateWeight, context)); }
public override sealed SimScorer GetSimScorer(SimWeight stats, AtomicReaderContext context) { BM25Stats bm25stats = (BM25Stats)stats; return(new BM25DocScorer(this, bm25stats, context.AtomicReader.GetNormValues(bm25stats.Field))); }
public override sealed SimScorer DoSimScorer(SimWeight stats, AtomicReaderContext context) { IDFStats idfstats = (IDFStats)stats; return new TFIDFSimScorer(this, idfstats, context.AtomicReader.GetNormValues(idfstats.Field)); }
public override sealed SimScorer GetSimScorer(SimWeight stats, AtomicReaderContext context) { IDFStats idfstats = (IDFStats)stats; return(new TFIDFSimScorer(this, idfstats, context.AtomicReader.GetNormValues(idfstats.Field))); }
public override SimScorer DoSimScorer(SimWeight weight, AtomicReaderContext context) { throw new InvalidOperationException(); }
public override SimScorer GetSimScorer(SimWeight stats, AtomicReaderContext context) { throw UnsupportedOperationException.Create(UNSUPPORTED_MSG); }
internal MultiStats(SimWeight[] subStats) { this.SubStats = subStats; }
public override SimScorer DoSimScorer(SimWeight stats, AtomicReaderContext context) { if (stats is MultiSimilarity.MultiStats) { // a multi term query (e.g. phrase). return the summation, // scoring almost as if it were boolean query SimWeight[] subStats = ((MultiSimilarity.MultiStats)stats).SubStats; SimScorer[] subScorers = new SimScorer[subStats.Length]; for (int i = 0; i < subScorers.Length; i++) { BasicStats basicstats = (BasicStats)subStats[i]; subScorers[i] = new BasicSimScorer(this, basicstats, context.AtomicReader.GetNormValues(basicstats.field)); } return new MultiSimilarity.MultiSimScorer(subScorers); } else { BasicStats basicstats = (BasicStats)stats; return new BasicSimScorer(this, basicstats, context.AtomicReader.GetNormValues(basicstats.field)); } }
public override SimScorer GetSimScorer(SimWeight weight, AtomicReaderContext context) { throw new System.NotSupportedException(); }
public override SimScorer GetSimScorer(SimWeight weight, AtomicReaderContext context) { throw UnsupportedOperationException.Create(); }
public override SimScorer GetSimScorer(SimWeight stats, AtomicReaderContext context) { throw new NotSupportedException(UNSUPPORTED_MSG); }
public override sealed SimScorer DoSimScorer(SimWeight weight, AtomicReaderContext context) { PerFieldSimWeight perFieldWeight = (PerFieldSimWeight)weight; return [email protected](perFieldWeight.DelegateWeight, context); }
/// <summary> /// Creates a new <see cref="Similarity.SimScorer"/> to score matching documents from a segment of the inverted index. </summary> /// <param name="weight"> collection information from <see cref="ComputeWeight(float, CollectionStatistics, TermStatistics[])"/> </param> /// <param name="context"> segment of the inverted index to be scored. </param> /// <returns> Sloppy <see cref="SimScorer"/> for scoring documents across <c>context</c> </returns> /// <exception cref="IOException"> if there is a low-level I/O error </exception> public abstract SimScorer GetSimScorer(SimWeight weight, AtomicReaderContext context);
public override sealed SimScorer DoSimScorer(SimWeight stats, AtomicReaderContext context) { BM25Stats bm25stats = (BM25Stats)stats; return new BM25DocScorer(this, bm25stats, ((AtomicReader)context.Reader()).GetNormValues(bm25stats.Field)); }
public override SimScorer GetSimScorer(SimWeight weight, AtomicReaderContext context) { return(@in.GetSimScorer(weight, context)); }
public override SimScorer DoSimScorer(SimWeight weight, AtomicReaderContext context) { return @in.DoSimScorer(weight, context); }