You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucenenet.apache.org by sy...@apache.org on 2015/03/01 20:41:06 UTC

[3/5] lucenenet git commit: Changed the only reference to Support's PQ. Changed the corresponding method calls.

Changed the only reference to Support's PQ. Changed the corresponding method calls.


Project: http://git-wip-us.apache.org/repos/asf/lucenenet/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucenenet/commit/9428451c
Tree: http://git-wip-us.apache.org/repos/asf/lucenenet/tree/9428451c
Diff: http://git-wip-us.apache.org/repos/asf/lucenenet/diff/9428451c

Branch: refs/heads/master
Commit: 9428451c8ee87b39efeb2c39b94eb153067a066e
Parents: bf98bca
Author: Guido Tagliavini Ponce <t-...@microsoft.com>
Authored: Wed Feb 18 12:02:13 2015 -0800
Committer: Guido Tagliavini Ponce <t-...@microsoft.com>
Committed: Wed Feb 18 12:02:13 2015 -0800

----------------------------------------------------------------------
 src/Lucene.Net.Core/Search/TopTermsRewrite.cs | 29 ++++++++++++++--------
 1 file changed, 19 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucenenet/blob/9428451c/src/Lucene.Net.Core/Search/TopTermsRewrite.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Core/Search/TopTermsRewrite.cs b/src/Lucene.Net.Core/Search/TopTermsRewrite.cs
index e61b362..e685872 100644
--- a/src/Lucene.Net.Core/Search/TopTermsRewrite.cs
+++ b/src/Lucene.Net.Core/Search/TopTermsRewrite.cs
@@ -5,7 +5,7 @@ using System.Linq;
 
 namespace Lucene.Net.Search
 {
-    using Lucene.Net.Support;
+    using Lucene.Net.Util;
     using ArrayUtil = Lucene.Net.Util.ArrayUtil;
     using BytesRef = Lucene.Net.Util.BytesRef;
 
@@ -71,7 +71,7 @@ namespace Lucene.Net.Search
         public override Query Rewrite(IndexReader reader, MultiTermQuery query)
         {
             int maxSize = Math.Min(size, MaxSize);
-            PriorityQueue<ScoreTerm> stQueue = new PriorityQueue<ScoreTerm>();
+            PriorityQueue<ScoreTerm> stQueue = new ScoreTermPQ();
             CollectTerms(reader, query, new TermCollectorAnonymousInnerClassHelper(this, maxSize, stQueue));
 
             var q = TopLevelQuery;
@@ -161,9 +161,9 @@ namespace Lucene.Net.Search
 
                 //System.out.println("TTR.collect term=" + bytes.utf8ToString() + " boost=" + boost + " ord=" + readerContext.ord);
                 // ignore uncompetitive hits
-                if (StQueue.Count == MaxSize)
+                if (StQueue.Size() == MaxSize)
                 {
-                    ScoreTerm t = StQueue.Peek();
+                    ScoreTerm t = StQueue.Top();
                     if (boost < t.Boost)
                     {
                         return true;
@@ -190,11 +190,11 @@ namespace Lucene.Net.Search
                     visitedTerms[st.Bytes] = st;
                     Debug.Assert(st.TermState.DocFreq == 0);
                     st.TermState.Register(state, ReaderContext.Ord, termsEnum.DocFreq(), termsEnum.TotalTermFreq());
-                    StQueue.Offer(st);
+                    StQueue.Add(st);
                     // possibly drop entries from queue
-                    if (StQueue.Count > MaxSize)
+                    if (StQueue.Size() > MaxSize)
                     {
-                        st = StQueue.Poll();
+                        st = StQueue.Pop();
                         visitedTerms.Remove(st.Bytes);
                         st.TermState.Clear(); // reset the termstate!
                     }
@@ -202,11 +202,11 @@ namespace Lucene.Net.Search
                     {
                         st = new ScoreTerm(termComp, new TermContext(TopReaderContext));
                     }
-                    Debug.Assert(StQueue.Count <= MaxSize, "the PQ size must be limited to maxSize");
+                    Debug.Assert(StQueue.Size() <= MaxSize, "the PQ size must be limited to maxSize");
                     // set maxBoostAtt with values to help FuzzyTermsEnum to optimize
-                    if (StQueue.Count == MaxSize)
+                    if (StQueue.Size() == MaxSize)
                     {
-                        t2 = StQueue.Peek();
+                        t2 = StQueue.Top();
                         maxBoostAtt.MaxNonCompetitiveBoost = t2.Boost;
                         maxBoostAtt.CompetitiveTerm = t2.Bytes;
                     }
@@ -283,5 +283,14 @@ namespace Lucene.Net.Search
                 }
             }
         }
+
+        private class ScoreTermPQ : PriorityQueue<ScoreTerm>
+        {
+            public override bool LessThan(ScoreTerm a, ScoreTerm b)
+            {
+                return (a.CompareTo(b) < 0) ? true : false;
+            }
+        }
+
     }
 }
\ No newline at end of file