beagle r4393 - in branches/beagle-lucene-2_0_004: . beagled/Lucene.Net/Search
- From: kkubasik svn gnome org
- To: svn-commits-list gnome org
- Subject: beagle r4393 - in branches/beagle-lucene-2_0_004: . beagled/Lucene.Net/Search
- Date: Thu, 17 Jan 2008 17:18:03 +0000 (GMT)
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]