Ejemplo n.º 1
0
 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)));
     }
 }
Ejemplo n.º 2
0
 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));
     }
 }