public PhraseWeight(PhraseQuery outerInstance, IndexSearcher searcher) { this.outerInstance = outerInstance; this.similarity = searcher.Similarity; IndexReaderContext context = searcher.TopReaderContext; states = new TermContext[outerInstance.terms.Count]; TermStatistics[] termStats = new TermStatistics[outerInstance.terms.Count]; for (int i = 0; i < outerInstance.terms.Count; i++) { Term term = outerInstance.terms[i]; states[i] = TermContext.Build(context, term); termStats[i] = searcher.TermStatistics(term, states[i]); } stats = similarity.ComputeWeight(outerInstance.Boost, searcher.CollectionStatistics(outerInstance.field), termStats); }
public SpanWeight(SpanQuery query, IndexSearcher searcher) { this.Similarity = searcher.Similarity; this.query = query; TermContexts = new Dictionary<Term, TermContext>(); SortedSet<Term> terms = new SortedSet<Term>(); query.ExtractTerms(terms); IndexReaderContext context = searcher.TopReaderContext; TermStatistics[] termStats = new TermStatistics[terms.Count]; int i = 0; foreach (Term term in terms) { TermContext state = TermContext.Build(context, term); termStats[i] = searcher.TermStatistics(term, state); TermContexts[term] = state; i++; } string field = query.Field; if (field != null) { Stats = Similarity.ComputeWeight(query.Boost, searcher.CollectionStatistics(query.Field), termStats); } }
public override Explanation IdfExplain(CollectionStatistics collectionStats, TermStatistics[] termStats) { return new Explanation(10f, "just a test"); }
public override Explanation IdfExplain(CollectionStatistics collectionStats, TermStatistics[] stats) { return new Explanation(1.0f, "Inexplicable"); }