beagle r4393 - in branches/beagle-lucene-2_0_004: . beagled/Lucene.Net/Search



Author: kkubasik
Date: Thu Jan 17 17:18:02 2008
New Revision: 4393
URL: http://svn.gnome.org/viewvc/beagle?rev=4393&view=rev

Log:
Add missing files

Added:
   branches/beagle-lucene-2_0_004/beagle-lucene-2_0_004.userprefs
   branches/beagle-lucene-2_0_004/beagle-lucene-2_0_004.usertasks
   branches/beagle-lucene-2_0_004/beagled/Lucene.Net/Search/TopDocCollector.cs
   branches/beagle-lucene-2_0_004/beagled/Lucene.Net/Search/TopFieldDocCollector.cs

Added: branches/beagle-lucene-2_0_004/beagle-lucene-2_0_004.userprefs
==============================================================================
--- (empty file)
+++ branches/beagle-lucene-2_0_004/beagle-lucene-2_0_004.userprefs	Thu Jan 17 17:18:02 2008
@@ -0,0 +1,22 @@
+ï<UserCombinePreferences version="1.0" filename="/home/kkubasik/mysrc/beagle-lucene-2_0_004/beagle-lucene-2_0_004.mds">
+  <Files>
+    <File name="Welcome" />
+  </Files>
+  <Views>
+    <ViewMemento id="ProjectPad">
+      <Node expanded="True">
+        <Node name="beagle-lucene-2_0_004" expanded="True" selected="True" />
+      </Node>
+    </ViewMemento>
+    <ViewMemento id="ClassPad">
+      <Node expanded="True" />
+    </ViewMemento>
+    <ViewMemento id="MonoDevelop.NUnit.TestPad">
+      <Node />
+    </ViewMemento>
+  </Views>
+  <Properties>
+    <Property key="ActiveWindow" value="Welcome" />
+    <Property key="ActiveConfiguration" value="Debug" />
+  </Properties>
+</UserCombinePreferences>
\ No newline at end of file

Added: branches/beagle-lucene-2_0_004/beagle-lucene-2_0_004.usertasks
==============================================================================
--- (empty file)
+++ branches/beagle-lucene-2_0_004/beagle-lucene-2_0_004.usertasks	Thu Jan 17 17:18:02 2008
@@ -0,0 +1,2 @@
+ï<?xml version="1.0" encoding="utf-8"?>
+<ArrayOfUserTask xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xmlns:xsd="http://www.w3.org/2001/XMLSchema"; />
\ No newline at end of file

Added: branches/beagle-lucene-2_0_004/beagled/Lucene.Net/Search/TopDocCollector.cs
==============================================================================
--- (empty file)
+++ branches/beagle-lucene-2_0_004/beagled/Lucene.Net/Search/TopDocCollector.cs	Thu Jan 17 17:18:02 2008
@@ -0,0 +1,87 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+using System;
+using PriorityQueue = Lucene.Net.Util.PriorityQueue;
+
+namespace Lucene.Net.Search
+{
+	
+    /// <summary>A { link HitCollector} implementation that collects the top-scoring
+    /// documents, returning them as a { link TopDocs}.  This is used by { link
+    /// IndexSearcher} to implement { link TopDocs}-based search.
+    /// 
+    /// <p>This may be extended, overriding the collect method to, e.g.,
+    /// conditionally invoke <code>super()</code> in order to filter which
+    /// documents are collected.
+    /// 
+    /// </summary>
+    public class TopDocCollector : HitCollector
+    {
+        private int numHits;
+        private float minScore = 0.0f;
+		
+        internal int totalHits;
+        internal PriorityQueue hq;
+		
+        /// <summary>Construct to collect a given number of hits.</summary>
+        /// <param name="numHits">the maximum number of hits to collect
+        /// </param>
+        public TopDocCollector(int numHits) : this(numHits, new HitQueue(numHits))
+        {
+        }
+		
+        internal TopDocCollector(int numHits, PriorityQueue hq)
+        {
+            this.numHits = numHits;
+            this.hq = hq;
+        }
+		
+        // javadoc inherited
+        public override void  Collect(int doc, float score)
+        {
+            if (score > 0.0f)
+            {
+                totalHits++;
+                if (hq.Size() < numHits || score >= minScore)
+                {
+                    hq.Insert(new ScoreDoc(doc, score));
+                    minScore = ((ScoreDoc) hq.Top()).score; // maintain minScore
+                }
+            }
+        }
+		
+        /// <summary>The total number of documents that matched this query. </summary>
+        public virtual int GetTotalHits()
+        {
+            return totalHits;
+        }
+		
+        /// <summary>The top-scoring hits. </summary>
+        public virtual TopDocs TopDocs()
+        {
+            ScoreDoc[] scoreDocs = new ScoreDoc[hq.Size()];
+            for (int i = hq.Size() - 1; i >= 0; i--)
+                // put docs in array
+                scoreDocs[i] = (ScoreDoc) hq.Pop();
+			
+            float maxScore = (totalHits == 0) ? System.Single.NegativeInfinity : scoreDocs[0].score;
+			
+            return new TopDocs(totalHits, scoreDocs, maxScore);
+        }
+    }
+}
\ No newline at end of file

Added: branches/beagle-lucene-2_0_004/beagled/Lucene.Net/Search/TopFieldDocCollector.cs
==============================================================================
--- (empty file)
+++ branches/beagle-lucene-2_0_004/beagled/Lucene.Net/Search/TopFieldDocCollector.cs	Thu Jan 17 17:18:02 2008
@@ -0,0 +1,69 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+using System;
+using IndexReader = Lucene.Net.Index.IndexReader;
+
+namespace Lucene.Net.Search
+{
+	
+    /// <summary>A { link HitCollector} implementation that collects the top-sorting
+    /// documents, returning them as a { link TopFieldDocs}.  This is used by { link
+    /// IndexSearcher} to implement { link TopFieldDocs}-based search.
+    /// 
+    /// <p>This may be extended, overriding the collect method to, e.g.,
+    /// conditionally invoke <code>super()</code> in order to filter which
+    /// documents are collected.
+    /// 
+    /// </summary>
+    public class TopFieldDocCollector : TopDocCollector
+    {
+		
+        /// <summary>Construct to collect a given number of hits.</summary>
+        /// <param name="reader">the index to be searched
+        /// </param>
+        /// <param name="sort">the sort criteria
+        /// </param>
+        /// <param name="numHits">the maximum number of hits to collect
+        /// </param>
+        public TopFieldDocCollector(IndexReader reader, Sort sort, int numHits) : base(numHits, new FieldSortedHitQueue(reader, sort.fields, numHits))
+        {
+        }
+		
+        // javadoc inherited
+        public override void  Collect(int doc, float score)
+        {
+            if (score > 0.0f)
+            {
+                totalHits++;
+                hq.Insert(new FieldDoc(doc, score));
+            }
+        }
+		
+        // javadoc inherited
+        public override TopDocs TopDocs()
+        {
+            FieldSortedHitQueue fshq = (FieldSortedHitQueue) hq;
+            ScoreDoc[] scoreDocs = new ScoreDoc[fshq.Size()];
+            for (int i = fshq.Size() - 1; i >= 0; i--)
+                // put docs in array
+                scoreDocs[i] = fshq.FillFields((FieldDoc) fshq.Pop());
+			
+            return new TopFieldDocs(totalHits, scoreDocs, fshq.GetFields(), fshq.GetMaxScore());
+        }
+    }
+}
\ No newline at end of file



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]