Exemplo n.º 1
0
                public override TermStatistics TermStatistics(Term term, TermContext context)
                {
                    Debug.Assert(term != null);
                    long docFreq = 0;
                    long totalTermFreq = 0;
                    for (int nodeID = 0; nodeID < NodeVersions.Length; nodeID++)
                    {
                        TermStatistics subStats;
                        if (nodeID == MyNodeID)
                        {
                            subStats = base.TermStatistics(term, context);
                        }
                        else
                        {
                            TermAndShardVersion key = new TermAndShardVersion(nodeID, NodeVersions[nodeID], term);
                            subStats = OuterInstance.TermStatsCache[key];
                            // We pre-cached during rewrite so all terms
                            // better be here...
                            Debug.Assert(subStats != null);
                        }

                        long nodeDocFreq = subStats.DocFreq();
                        if (docFreq >= 0 && nodeDocFreq >= 0)
                        {
                            docFreq += nodeDocFreq;
                        }
                        else
                        {
                            docFreq = -1;
                        }

                        long nodeTotalTermFreq = subStats.TotalTermFreq();
                        if (totalTermFreq >= 0 && nodeTotalTermFreq >= 0)
                        {
                            totalTermFreq += nodeTotalTermFreq;
                        }
                        else
                        {
                            totalTermFreq = -1;
                        }
                    }

                    return new TermStatistics(term.Bytes, docFreq, totalTermFreq);
                }
Exemplo n.º 2
0
            protected internal override void AddClause(BooleanQuery topLevel, Term term, int docFreq, float boost, TermContext states)
            {
                Query q = new ConstantScoreQuery(new TermQuery(term, states));

                q.Boost = boost;
                topLevel.Add(q, BooleanClause.Occur.SHOULD);
            }
Exemplo n.º 3
0
            protected internal override void AddClause(BooleanQuery topLevel, Term term, int docCount, float boost, TermContext states)
            {
                TermQuery tq = new TermQuery(term, states);

                tq.Boost = boost;
                topLevel.Add(tq, BooleanClause.Occur.SHOULD);
            }
Exemplo n.º 4
0
 /// <summary>
 /// Expert: constructs a TermQuery that will use the
 ///  provided docFreq instead of looking up the docFreq
 ///  against the searcher.
 /// </summary>
 public TermQuery(Term t, TermContext states)
 {
     Debug.Assert(states != null);
     _term = t;
     DocFreq = states.DocFreq;
     PerReaderTermState = states;
 }
Exemplo n.º 5
0
 /// <summary>
 /// Expert: constructs a TermQuery that will use the
 ///  provided docFreq instead of looking up the docFreq
 ///  against the searcher.
 /// </summary>
 public TermQuery(Term t, int docFreq)
 {
     _term = t;
     this.DocFreq = docFreq;
     PerReaderTermState = null;
 }
Exemplo n.º 6
0
 public TermWeight(TermQuery outerInstance, IndexSearcher searcher, TermContext termStates)
 {
     this.OuterInstance = outerInstance;
     Debug.Assert(termStates != null, "TermContext must not be null");
     this.TermStates = termStates;
     this.Similarity = searcher.Similarity;
     this.Stats = Similarity.ComputeWeight(outerInstance.Boost, searcher.CollectionStatistics(outerInstance._term.Field), searcher.TermStatistics(outerInstance._term, termStates));
 }