Mailing List Archive

r3662 - in trunk: c_src/KinoSearch c_src/KinoSearch/Search c_src/KinoSearch/Search/HitCollector perl perl/lib/KSx/Search perl/lib/KinoSearch/Search perl/lib/KinoSearch/Search/HitCollector perl/t
Author: creamyg
Date: 2008-07-29 13:15:13 -0700 (Tue, 29 Jul 2008)
New Revision: 3662

Added:
trunk/c_src/KinoSearch/Search/HitCollector/
trunk/c_src/KinoSearch/Search/HitCollector/SortCollector.bp
trunk/c_src/KinoSearch/Search/HitCollector/SortCollector.c
trunk/c_src/KinoSearch/Search/HitCollector/TopDocCollector.bp
trunk/c_src/KinoSearch/Search/HitCollector/TopDocCollector.c
trunk/perl/lib/KinoSearch/Search/HitCollector/
trunk/perl/lib/KinoSearch/Search/HitCollector/SortCollector.pm
trunk/perl/lib/KinoSearch/Search/HitCollector/TopDocCollector.pm
Removed:
trunk/c_src/KinoSearch/Search/SortCollector.bp
trunk/c_src/KinoSearch/Search/SortCollector.c
trunk/c_src/KinoSearch/Search/TopDocCollector.bp
trunk/c_src/KinoSearch/Search/TopDocCollector.c
trunk/perl/lib/KinoSearch/Search/SortCollector.pm
trunk/perl/lib/KinoSearch/Search/TopDocCollector.pm
Modified:
trunk/c_src/KinoSearch/Search/HitCollector.bp
trunk/c_src/KinoSearch/Search/MultiSearcher.c
trunk/c_src/KinoSearch/Searcher.c
trunk/perl/MANIFEST
trunk/perl/lib/KSx/Search/Filter.pm
trunk/perl/lib/KinoSearch/Search/HitCollector.pm
trunk/perl/t/506-hit_collector.t
trunk/perl/t/509-multi_searcher.t
trunk/perl/t/513-scorer.t
trunk/perl/t/514-and_scorer.t
trunk/perl/t/518-or_scorer.t
trunk/perl/t/519-req_opt_scorer.t
trunk/perl/t/526-not_query.t
Log:
Move all HitCollector subclasses underneath KinoSearch::Search::HitCollector.


Copied: trunk/c_src/KinoSearch/Search/HitCollector/SortCollector.bp (from rev 3657, trunk/c_src/KinoSearch/Search/SortCollector.bp)
===================================================================
--- trunk/c_src/KinoSearch/Search/HitCollector/SortCollector.bp (rev 0)
+++ trunk/c_src/KinoSearch/Search/HitCollector/SortCollector.bp 2008-07-29 20:15:13 UTC (rev 3662)
@@ -0,0 +1,30 @@
+parcel KinoSearch cnick Kino;
+
+/** Sorting TopDocCollector.
+ */
+
+class KinoSearch::Search::HitCollector::SortCollector cnick SortColl
+ extends KinoSearch::Search::HitCollector::TopDocCollector {
+
+ FieldDocCollator *collator;
+ i32_t min_doc;
+
+ static incremented SortCollector*
+ new(FieldDocCollator *collator, u32_t size);
+
+ static SortCollector*
+ init(SortCollector *self, FieldDocCollator *collator, u32_t size);
+
+ void
+ Collect(SortCollector *self, u32_t doc_num, float score);
+
+ void
+ Destroy(SortCollector *self);
+}
+
+/* Copyright 2007-2008 Marvin Humphrey
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * under the same terms as Perl itself.
+ */
+

Copied: trunk/c_src/KinoSearch/Search/HitCollector/SortCollector.c (from rev 3657, trunk/c_src/KinoSearch/Search/SortCollector.c)
===================================================================
--- trunk/c_src/KinoSearch/Search/HitCollector/SortCollector.c (rev 0)
+++ trunk/c_src/KinoSearch/Search/HitCollector/SortCollector.c 2008-07-29 20:15:13 UTC (rev 3662)
@@ -0,0 +1,80 @@
+#include "KinoSearch/Util/ToolSet.h"
+
+#include "KinoSearch/Search/HitCollector/SortCollector.h"
+#include "KinoSearch/Search/FieldDoc.h"
+#include "KinoSearch/Search/FieldDocCollator.h"
+#include "KinoSearch/Search/HitQueue.h"
+#include "KinoSearch/Search/SortedHitQueue.h"
+
+SortCollector*
+SortColl_new(FieldDocCollator *collator, u32_t num_hits)
+{
+ SortCollector *self = (SortCollector*)CREATE(NULL, SORTCOLLECTOR);
+ return SortColl_init(self, collator, num_hits);
+}
+
+SortCollector*
+SortColl_init(SortCollector *self, FieldDocCollator *collator, u32_t num_hits)
+{
+ HC_init((HitCollector*)self);
+
+ /* Init. */
+ self->min_doc = -1;
+ self->min_score = 0.0f;
+ self->total_hits = 0;
+ self->num_hits = 0;
+
+ /* Assign. */
+ self->num_hits = num_hits;
+ self->collator = REFCOUNT_INC(collator);
+
+ /* Derive. */
+ self->hit_q = (HitQueue*)SortedHitQ_new(num_hits);
+
+ return self;
+}
+
+void
+SortColl_destroy(SortCollector *self)
+{
+ REFCOUNT_DEC(self->collator);
+ REFCOUNT_DEC(self->hit_q);
+ FREE_OBJ(self);
+}
+
+void
+SortColl_collect(SortCollector *self, u32_t doc_num, float score)
+{
+ /* Add to the total number of hits. */
+ self->total_hits++;
+
+ /* Bail if the doc doesn't sort higher than the current bubble. */
+ if ( self->total_hits > self->num_hits
+ && ( FDocCollator_Compare(self->collator, doc_num, score,
+ self->min_doc, self->min_score) )
+ ) {
+ return;
+ }
+ else {
+ FieldDoc *const field_doc
+ = FieldDoc_new(doc_num, score, self->collator);
+ SortedHitQueue *const hit_q = (SortedHitQueue*)self->hit_q;
+
+ SortedHitQ_Insert(hit_q, (Obj*)field_doc);
+ REFCOUNT_DEC(field_doc);
+
+ /* Store the bubble score in a more accessible spot. */
+ if (hit_q->size == hit_q->max_size) {
+ FieldDoc *const least = (FieldDoc*)SortedHitQ_Peek(hit_q);
+ self->min_doc = least->doc_num;
+ self->min_score = least->score;
+ }
+ }
+}
+
+/* Copyright 2007-2008 Marvin Humphrey
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * under the same terms as Perl itself.
+ */
+

Copied: trunk/c_src/KinoSearch/Search/HitCollector/TopDocCollector.bp (from rev 3657, trunk/c_src/KinoSearch/Search/TopDocCollector.bp)
===================================================================
--- trunk/c_src/KinoSearch/Search/HitCollector/TopDocCollector.bp (rev 0)
+++ trunk/c_src/KinoSearch/Search/HitCollector/TopDocCollector.bp 2008-07-29 20:15:13 UTC (rev 3662)
@@ -0,0 +1,37 @@
+parcel KinoSearch cnick Kino;
+
+/** Collect top-scoring documents.
+ *
+ * A TopDocCollector keeps the highest scoring N documents and their associated
+ * scores in a HitQueue while iterating through a large list.
+ */
+
+class KinoSearch::Search::HitCollector::TopDocCollector cnick TDColl
+ extends KinoSearch::Search::HitCollector {
+
+ float min_score;
+ u32_t num_hits;
+ u32_t total_hits;
+ HitQueue *hit_q;
+
+ static incremented TopDocCollector*
+ new(u32_t size);
+
+ static TopDocCollector*
+ init(TopDocCollector *self, u32_t size);
+
+ /** Keep highest scoring docs.
+ */
+ void
+ Collect(TopDocCollector *self, u32_t doc_num, float score);
+
+ void
+ Destroy(TopDocCollector *self);
+}
+
+/* Copyright 2006-2008 Marvin Humphrey
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * under the same terms as Perl itself.
+ */
+

Copied: trunk/c_src/KinoSearch/Search/HitCollector/TopDocCollector.c (from rev 3657, trunk/c_src/KinoSearch/Search/TopDocCollector.c)
===================================================================
--- trunk/c_src/KinoSearch/Search/HitCollector/TopDocCollector.c (rev 0)
+++ trunk/c_src/KinoSearch/Search/HitCollector/TopDocCollector.c 2008-07-29 20:15:13 UTC (rev 3662)
@@ -0,0 +1,71 @@
+#include "KinoSearch/Util/ToolSet.h"
+
+#include "KinoSearch/Search/HitCollector/TopDocCollector.h"
+#include "KinoSearch/Search/HitQueue.h"
+#include "KinoSearch/Search/ScoreDoc.h"
+
+TopDocCollector*
+TDColl_new(u32_t num_hits)
+{
+ TopDocCollector *self = (TopDocCollector*)CREATE(NULL, TOPDOCCOLLECTOR);
+ return TDColl_init(self, num_hits);
+}
+
+TopDocCollector*
+TDColl_init(TopDocCollector *self, u32_t num_hits)
+{
+ HC_init((HitCollector*)self);
+
+ /* Init. */
+ self->min_score = 0.0;
+ self->total_hits = 0;
+
+ /* Assign. */
+ self->num_hits = num_hits;
+
+ /* Derive. */
+ self->hit_q = kino_HitQ_new(num_hits);
+
+ return self;
+}
+
+void
+TDColl_destroy(TopDocCollector *self)
+{
+ REFCOUNT_DEC(self->hit_q);
+ FREE_OBJ(self);
+}
+
+void
+TDColl_collect(TopDocCollector *self, u32_t doc_num, float score)
+{
+ /* Add to the total number of hits. */
+ self->total_hits++;
+
+ /* Bail if the score doesn't exceed the minimum. */
+ if ( self->total_hits > self->num_hits
+ && score < self->min_score
+ ) {
+ return;
+ }
+ else if (self->num_hits > 0) {
+ ScoreDoc *const score_doc = ScoreDoc_new(doc_num, score);
+ HitQueue *const hit_q = self->hit_q;
+
+ HitQ_Insert(hit_q, (Obj*)score_doc);
+ REFCOUNT_DEC(score_doc);
+
+ /* Store the bubble score in a more accessible spot. */
+ if (hit_q->size == hit_q->max_size) {
+ ScoreDoc *const least = (ScoreDoc*)HitQ_Peek(hit_q);
+ self->min_score = least->score;
+ }
+ }
+}
+
+/* Copyright 2006-2008 Marvin Humphrey
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * under the same terms as Perl itself.
+ */
+

Modified: trunk/c_src/KinoSearch/Search/HitCollector.bp
===================================================================
--- trunk/c_src/KinoSearch/Search/HitCollector.bp 2008-07-29 17:16:41 UTC (rev 3661)
+++ trunk/c_src/KinoSearch/Search/HitCollector.bp 2008-07-29 20:15:13 UTC (rev 3662)
@@ -19,7 +19,7 @@
Collect(HitCollector *self, u32_t doc_num, float score);
}

-class KinoSearch::Search::BitCollector cnick BitColl
+class KinoSearch::Search::HitCollector::BitCollector cnick BitColl
extends KinoSearch::Search::HitCollector {

BitVector *bit_vec;
@@ -40,7 +40,7 @@
Collect(BitCollector *self, u32_t doc_num, float score);
}

-class KinoSearch::Search::OffsetCollector cnick OffsetColl
+class KinoSearch::Search::HitCollector::OffsetCollector cnick OffsetColl
extends KinoSearch::Search::HitCollector {

u32_t offset;

Modified: trunk/c_src/KinoSearch/Search/MultiSearcher.c
===================================================================
--- trunk/c_src/KinoSearch/Search/MultiSearcher.c 2008-07-29 17:16:41 UTC (rev 3661)
+++ trunk/c_src/KinoSearch/Search/MultiSearcher.c 2008-07-29 20:15:13 UTC (rev 3662)
@@ -13,7 +13,7 @@
#include "KinoSearch/Search/Scorer.h"
#include "KinoSearch/Search/Searchable.h"
#include "KinoSearch/Search/SortSpec.h"
-#include "KinoSearch/Search/TopDocCollector.h"
+#include "KinoSearch/Search/HitCollector/TopDocCollector.h"
#include "KinoSearch/Search/TopDocs.h"
#include "KinoSearch/Search/Compiler.h"
#include "KinoSearch/Searcher.h"

Deleted: trunk/c_src/KinoSearch/Search/SortCollector.bp
===================================================================
--- trunk/c_src/KinoSearch/Search/SortCollector.bp 2008-07-29 17:16:41 UTC (rev 3661)
+++ trunk/c_src/KinoSearch/Search/SortCollector.bp 2008-07-29 20:15:13 UTC (rev 3662)
@@ -1,30 +0,0 @@
-parcel KinoSearch cnick Kino;
-
-/** Sorting TopDocCollector.
- */
-
-class KinoSearch::Search::SortCollector cnick SortColl
- extends KinoSearch::Search::TopDocCollector {
-
- FieldDocCollator *collator;
- i32_t min_doc;
-
- static incremented SortCollector*
- new(FieldDocCollator *collator, u32_t size);
-
- static SortCollector*
- init(SortCollector *self, FieldDocCollator *collator, u32_t size);
-
- void
- Collect(SortCollector *self, u32_t doc_num, float score);
-
- void
- Destroy(SortCollector *self);
-}
-
-/* Copyright 2007-2008 Marvin Humphrey
- *
- * This program is free software; you can redistribute it and/or modify
- * under the same terms as Perl itself.
- */
-

Deleted: trunk/c_src/KinoSearch/Search/SortCollector.c
===================================================================
--- trunk/c_src/KinoSearch/Search/SortCollector.c 2008-07-29 17:16:41 UTC (rev 3661)
+++ trunk/c_src/KinoSearch/Search/SortCollector.c 2008-07-29 20:15:13 UTC (rev 3662)
@@ -1,80 +0,0 @@
-#include "KinoSearch/Util/ToolSet.h"
-
-#include "KinoSearch/Search/SortCollector.h"
-#include "KinoSearch/Search/FieldDoc.h"
-#include "KinoSearch/Search/FieldDocCollator.h"
-#include "KinoSearch/Search/HitQueue.h"
-#include "KinoSearch/Search/SortedHitQueue.h"
-
-SortCollector*
-SortColl_new(FieldDocCollator *collator, u32_t num_hits)
-{
- SortCollector *self = (SortCollector*)CREATE(NULL, SORTCOLLECTOR);
- return SortColl_init(self, collator, num_hits);
-}
-
-SortCollector*
-SortColl_init(SortCollector *self, FieldDocCollator *collator, u32_t num_hits)
-{
- HC_init((HitCollector*)self);
-
- /* Init. */
- self->min_doc = -1;
- self->min_score = 0.0f;
- self->total_hits = 0;
- self->num_hits = 0;
-
- /* Assign. */
- self->num_hits = num_hits;
- self->collator = REFCOUNT_INC(collator);
-
- /* Derive. */
- self->hit_q = (HitQueue*)SortedHitQ_new(num_hits);
-
- return self;
-}
-
-void
-SortColl_destroy(SortCollector *self)
-{
- REFCOUNT_DEC(self->collator);
- REFCOUNT_DEC(self->hit_q);
- FREE_OBJ(self);
-}
-
-void
-SortColl_collect(SortCollector *self, u32_t doc_num, float score)
-{
- /* Add to the total number of hits. */
- self->total_hits++;
-
- /* Bail if the doc doesn't sort higher than the current bubble. */
- if ( self->total_hits > self->num_hits
- && ( FDocCollator_Compare(self->collator, doc_num, score,
- self->min_doc, self->min_score) )
- ) {
- return;
- }
- else {
- FieldDoc *const field_doc
- = FieldDoc_new(doc_num, score, self->collator);
- SortedHitQueue *const hit_q = (SortedHitQueue*)self->hit_q;
-
- SortedHitQ_Insert(hit_q, (Obj*)field_doc);
- REFCOUNT_DEC(field_doc);
-
- /* Store the bubble score in a more accessible spot. */
- if (hit_q->size == hit_q->max_size) {
- FieldDoc *const least = (FieldDoc*)SortedHitQ_Peek(hit_q);
- self->min_doc = least->doc_num;
- self->min_score = least->score;
- }
- }
-}
-
-/* Copyright 2007-2008 Marvin Humphrey
- *
- * This program is free software; you can redistribute it and/or modify
- * under the same terms as Perl itself.
- */
-

Deleted: trunk/c_src/KinoSearch/Search/TopDocCollector.bp
===================================================================
--- trunk/c_src/KinoSearch/Search/TopDocCollector.bp 2008-07-29 17:16:41 UTC (rev 3661)
+++ trunk/c_src/KinoSearch/Search/TopDocCollector.bp 2008-07-29 20:15:13 UTC (rev 3662)
@@ -1,37 +0,0 @@
-parcel KinoSearch cnick Kino;
-
-/** Collect top-scoring documents.
- *
- * A TopDocCollector keeps the highest scoring N documents and their associated
- * scores in a HitQueue while iterating through a large list.
- */
-
-class KinoSearch::Search::TopDocCollector cnick TDColl
- extends KinoSearch::Search::HitCollector {
-
- float min_score;
- u32_t num_hits;
- u32_t total_hits;
- HitQueue *hit_q;
-
- static incremented TopDocCollector*
- new(u32_t size);
-
- static TopDocCollector*
- init(TopDocCollector *self, u32_t size);
-
- /** Keep highest scoring docs.
- */
- void
- Collect(TopDocCollector *self, u32_t doc_num, float score);
-
- void
- Destroy(TopDocCollector *self);
-}
-
-/* Copyright 2006-2008 Marvin Humphrey
- *
- * This program is free software; you can redistribute it and/or modify
- * under the same terms as Perl itself.
- */
-

Deleted: trunk/c_src/KinoSearch/Search/TopDocCollector.c
===================================================================
--- trunk/c_src/KinoSearch/Search/TopDocCollector.c 2008-07-29 17:16:41 UTC (rev 3661)
+++ trunk/c_src/KinoSearch/Search/TopDocCollector.c 2008-07-29 20:15:13 UTC (rev 3662)
@@ -1,71 +0,0 @@
-#include "KinoSearch/Util/ToolSet.h"
-
-#include "KinoSearch/Search/TopDocCollector.h"
-#include "KinoSearch/Search/HitQueue.h"
-#include "KinoSearch/Search/ScoreDoc.h"
-
-TopDocCollector*
-TDColl_new(u32_t num_hits)
-{
- TopDocCollector *self = (TopDocCollector*)CREATE(NULL, TOPDOCCOLLECTOR);
- return TDColl_init(self, num_hits);
-}
-
-TopDocCollector*
-TDColl_init(TopDocCollector *self, u32_t num_hits)
-{
- HC_init((HitCollector*)self);
-
- /* Init. */
- self->min_score = 0.0;
- self->total_hits = 0;
-
- /* Assign. */
- self->num_hits = num_hits;
-
- /* Derive. */
- self->hit_q = kino_HitQ_new(num_hits);
-
- return self;
-}
-
-void
-TDColl_destroy(TopDocCollector *self)
-{
- REFCOUNT_DEC(self->hit_q);
- FREE_OBJ(self);
-}
-
-void
-TDColl_collect(TopDocCollector *self, u32_t doc_num, float score)
-{
- /* Add to the total number of hits. */
- self->total_hits++;
-
- /* Bail if the score doesn't exceed the minimum. */
- if ( self->total_hits > self->num_hits
- && score < self->min_score
- ) {
- return;
- }
- else if (self->num_hits > 0) {
- ScoreDoc *const score_doc = ScoreDoc_new(doc_num, score);
- HitQueue *const hit_q = self->hit_q;
-
- HitQ_Insert(hit_q, (Obj*)score_doc);
- REFCOUNT_DEC(score_doc);
-
- /* Store the bubble score in a more accessible spot. */
- if (hit_q->size == hit_q->max_size) {
- ScoreDoc *const least = (ScoreDoc*)HitQ_Peek(hit_q);
- self->min_score = least->score;
- }
- }
-}
-
-/* Copyright 2006-2008 Marvin Humphrey
- *
- * This program is free software; you can redistribute it and/or modify
- * under the same terms as Perl itself.
- */
-

Modified: trunk/c_src/KinoSearch/Searcher.c
===================================================================
--- trunk/c_src/KinoSearch/Searcher.c 2008-07-29 17:16:41 UTC (rev 3661)
+++ trunk/c_src/KinoSearch/Searcher.c 2008-07-29 20:15:13 UTC (rev 3662)
@@ -12,9 +12,9 @@
#include "KinoSearch/Search/Query.h"
#include "KinoSearch/Search/ScoreDoc.h"
#include "KinoSearch/Search/Scorer.h"
-#include "KinoSearch/Search/SortCollector.h"
+#include "KinoSearch/Search/HitCollector/SortCollector.h"
#include "KinoSearch/Search/SortSpec.h"
-#include "KinoSearch/Search/TopDocCollector.h"
+#include "KinoSearch/Search/HitCollector/TopDocCollector.h"
#include "KinoSearch/Search/TopDocs.h"
#include "KinoSearch/Search/Compiler.h"
#include "KinoSearch/Schema.h"

Modified: trunk/perl/MANIFEST
===================================================================
--- trunk/perl/MANIFEST 2008-07-29 17:16:41 UTC (rev 3661)
+++ trunk/perl/MANIFEST 2008-07-29 20:15:13 UTC (rev 3662)
@@ -125,6 +125,8 @@
lib/KinoSearch/Search/FieldDoc.pm
lib/KinoSearch/Search/FieldDocCollator.pm
lib/KinoSearch/Search/HitCollector.pm
+lib/KinoSearch/Search/HitCollector/SortCollector.pm
+lib/KinoSearch/Search/HitCollector/TopDocCollector.pm
lib/KinoSearch/Search/HitQueue.pm
lib/KinoSearch/Search/Hits.pm
lib/KinoSearch/Search/LeafQuery.pm
@@ -153,13 +155,11 @@
lib/KinoSearch/Search/SearchClient.pm
lib/KinoSearch/Search/SearchServer.pm
lib/KinoSearch/Search/Similarity.pm
-lib/KinoSearch/Search/SortCollector.pm
lib/KinoSearch/Search/SortedHitQueue.pm
lib/KinoSearch/Search/SortSpec.pm
lib/KinoSearch/Search/Tally.pm
lib/KinoSearch/Search/TermQuery.pm
lib/KinoSearch/Search/TermScorer.pm
-lib/KinoSearch/Search/TopDocCollector.pm
lib/KinoSearch/Search/TopDocs.pm
lib/KinoSearch/Searcher.pm
lib/KinoSearch/Store/CompoundFileReader.pm

Modified: trunk/perl/lib/KSx/Search/Filter.pm
===================================================================
--- trunk/perl/lib/KSx/Search/Filter.pm 2008-07-29 17:16:41 UTC (rev 3661)
+++ trunk/perl/lib/KSx/Search/Filter.pm 2008-07-29 20:15:13 UTC (rev 3662)
@@ -67,7 +67,7 @@
capacity => $reader->max_docs + 1 );
$self->_store_cached_bits( $reader, $cached_bits );

- my $collector = KinoSearch::Search::BitCollector->new(
+ my $collector = KinoSearch::Search::HitCollector::BitCollector->new(
bit_vector => $cached_bits );

my $searcher = KinoSearch::Searcher->new( reader => $reader );

Copied: trunk/perl/lib/KinoSearch/Search/HitCollector/SortCollector.pm (from rev 3657, trunk/perl/lib/KinoSearch/Search/SortCollector.pm)
===================================================================
--- trunk/perl/lib/KinoSearch/Search/HitCollector/SortCollector.pm (rev 0)
+++ trunk/perl/lib/KinoSearch/Search/HitCollector/SortCollector.pm 2008-07-29 20:15:13 UTC (rev 3662)
@@ -0,0 +1,21 @@
+use KinoSearch;
+
+1;
+
+__END__
+
+__AUTO_XS__
+
+{ "KinoSearch::Search::HitCollector::SortCollector" => {
+ make_constructors => ["new"],
+ }
+}
+
+__COPYRIGHT__
+
+Copyright 2005-2008 Marvin Humphrey
+
+This program is free software; you can redistribute it and/or modify
+under the same terms as Perl itself.
+
+

Copied: trunk/perl/lib/KinoSearch/Search/HitCollector/TopDocCollector.pm (from rev 3657, trunk/perl/lib/KinoSearch/Search/TopDocCollector.pm)
===================================================================
--- trunk/perl/lib/KinoSearch/Search/HitCollector/TopDocCollector.pm (rev 0)
+++ trunk/perl/lib/KinoSearch/Search/HitCollector/TopDocCollector.pm 2008-07-29 20:15:13 UTC (rev 3662)
@@ -0,0 +1,21 @@
+use KinoSearch;
+
+1;
+
+__END__
+
+__AUTO_XS__
+
+{ "KinoSearch::Search::HitCollector::TopDocCollector" => {
+ make_getters => [qw( hit_q total_hits )],
+ make_constructors => ["new"],
+ }
+}
+
+__COPYRIGHT__
+
+Copyright 2005-2008 Marvin Humphrey
+
+This program is free software; you can redistribute it and/or modify
+under the same terms as Perl itself.
+

Modified: trunk/perl/lib/KinoSearch/Search/HitCollector.pm
===================================================================
--- trunk/perl/lib/KinoSearch/Search/HitCollector.pm 2008-07-29 17:16:41 UTC (rev 3661)
+++ trunk/perl/lib/KinoSearch/Search/HitCollector.pm 2008-07-29 20:15:13 UTC (rev 3662)
@@ -10,10 +10,10 @@
"KinoSearch::Search::HitCollector" => {
make_constructors => ["new"],
},
- "KinoSearch::Search::BitCollector" => {
+ "KinoSearch::Search::HitCollector::BitCollector" => {
make_constructors => ["new"],
},
- "KinoSearch::Search::OffsetCollector" => {
+ "KinoSearch::Search::HitCollector::OffsetCollector" => {
make_constructors => ["new"],
},
}

Deleted: trunk/perl/lib/KinoSearch/Search/SortCollector.pm
===================================================================
--- trunk/perl/lib/KinoSearch/Search/SortCollector.pm 2008-07-29 17:16:41 UTC (rev 3661)
+++ trunk/perl/lib/KinoSearch/Search/SortCollector.pm 2008-07-29 20:15:13 UTC (rev 3662)
@@ -1,21 +0,0 @@
-use KinoSearch;
-
-1;
-
-__END__
-
-__AUTO_XS__
-
-{ "KinoSearch::Search::SortCollector" => {
- make_constructors => ["new"],
- }
-}
-
-__COPYRIGHT__
-
-Copyright 2005-2008 Marvin Humphrey
-
-This program is free software; you can redistribute it and/or modify
-under the same terms as Perl itself.
-
-

Deleted: trunk/perl/lib/KinoSearch/Search/TopDocCollector.pm
===================================================================
--- trunk/perl/lib/KinoSearch/Search/TopDocCollector.pm 2008-07-29 17:16:41 UTC (rev 3661)
+++ trunk/perl/lib/KinoSearch/Search/TopDocCollector.pm 2008-07-29 20:15:13 UTC (rev 3662)
@@ -1,21 +0,0 @@
-use KinoSearch;
-
-1;
-
-__END__
-
-__AUTO_XS__
-
-{ "KinoSearch::Search::TopDocCollector" => {
- make_getters => [qw( hit_q total_hits )],
- make_constructors => ["new"],
- }
-}
-
-__COPYRIGHT__
-
-Copyright 2005-2008 Marvin Humphrey
-
-This program is free software; you can redistribute it and/or modify
-under the same terms as Perl itself.
-

Modified: trunk/perl/t/506-hit_collector.t
===================================================================
--- trunk/perl/t/506-hit_collector.t 2008-07-29 17:16:41 UTC (rev 3661)
+++ trunk/perl/t/506-hit_collector.t 2008-07-29 20:15:13 UTC (rev 3662)
@@ -4,12 +4,12 @@
use Test::More tests => 6;

use KinoSearch::Search::HitCollector;
-use KinoSearch::Search::TopDocCollector;
+use KinoSearch::Search::HitCollector::TopDocCollector;
use KinoSearch::Util::BitVector;

my @docs_and_scores = ( [ 0, 2 ], [ 5, 0 ], [ 10, 0 ], [ 1000, 1 ] );

-my $hc = KinoSearch::Search::TopDocCollector->new( size => 3, );
+my $hc = KinoSearch::Search::HitCollector::TopDocCollector->new( size => 3, );
$hc->collect( $_->[0], $_->[1] ) for @docs_and_scores;

my $hit_queue = $hc->get_hit_q;
@@ -18,7 +18,7 @@
my @scores = map { $_->get_score } @{ $hit_queue->pop_all };
is_deeply( \@scores, [ 2, 1, 0 ], "collect into HitQueue" );

-$hc = KinoSearch::Search::TopDocCollector->new( size => 0 );
+$hc = KinoSearch::Search::HitCollector::TopDocCollector->new( size => 0 );
$hc->collect( $_->[0], $_->[1] ) for @docs_and_scores;
$hit_queue = $hc->get_hit_q;
is( $hc->get_total_hits, 4,
@@ -27,7 +27,8 @@
is( scalar @$score_docs, 0, "no hits wanted, so no hits returned" );

my $bit_vec = KinoSearch::Util::BitVector->new;
-$hc = KinoSearch::Search::BitCollector->new( bit_vector => $bit_vec );
+$hc = KinoSearch::Search::HitCollector::BitCollector->new(
+ bit_vector => $bit_vec );
$hc->collect( $_->[0], $_->[1] ) for @docs_and_scores;
is_deeply(
$bit_vec->to_arrayref,
@@ -36,9 +37,9 @@
);

$bit_vec = KinoSearch::Util::BitVector->new;
-my $inner_coll
- = KinoSearch::Search::BitCollector->new( bit_vector => $bit_vec );
-my $offset_coll = KinoSearch::Search::OffsetCollector->new(
+my $inner_coll = KinoSearch::Search::HitCollector::BitCollector->new(
+ bit_vector => $bit_vec );
+my $offset_coll = KinoSearch::Search::HitCollector::OffsetCollector->new(
collector => $inner_coll,
offset => 10,
);

Modified: trunk/perl/t/509-multi_searcher.t
===================================================================
--- trunk/perl/t/509-multi_searcher.t 2008-07-29 17:16:41 UTC (rev 3661)
+++ trunk/perl/t/509-multi_searcher.t 2008-07-29 20:15:13 UTC (rev 3662)
@@ -41,7 +41,8 @@

my $bit_vec = KinoSearch::Util::BitVector->new(
capacity => $multi_searcher->max_docs );
-my $bitcoll = KinoSearch::Search::BitCollector->new( bit_vector => $bit_vec );
+my $bitcoll = KinoSearch::Search::HitCollector::BitCollector->new(
+ bit_vector => $bit_vec );
my $query = $multi_searcher->prepare_simple_search('b');
$multi_searcher->collect( query => $query, collector => $bitcoll );
is_deeply( $bit_vec->to_arrayref, [ 2, 4 ], "collect" );

Modified: trunk/perl/t/513-scorer.t
===================================================================
--- trunk/perl/t/513-scorer.t 2008-07-29 17:16:41 UTC (rev 3661)
+++ trunk/perl/t/513-scorer.t 2008-07-29 20:15:13 UTC (rev 3662)
@@ -10,7 +10,7 @@
use Test::More tests => 11;

use KSx::Search::MockScorer;
-use KinoSearch::Search::TopDocCollector;
+use KinoSearch::Search::HitCollector::TopDocCollector;
use KinoSearch::Util::VArray;

my $sim = KinoSearch::Search::Similarity->new;
@@ -56,7 +56,8 @@
doc_nums => [ 1 .. 10 ],
scores => [ (0) x 10 ],
);
- my $collector = KinoSearch::Search::TopDocCollector->new( size => 100 );
+ my $collector = KinoSearch::Search::HitCollector::TopDocCollector->new(
+ size => 100 );
$scorer->collect(
collector => $collector,
start => $args{start},

Modified: trunk/perl/t/514-and_scorer.t
===================================================================
--- trunk/perl/t/514-and_scorer.t 2008-07-29 17:16:41 UTC (rev 3661)
+++ trunk/perl/t/514-and_scorer.t 2008-07-29 20:15:13 UTC (rev 3662)
@@ -7,7 +7,7 @@
use KinoSearch::Search::ANDScorer;
use KinoSearch::Search::Similarity;
use KSx::Search::MockScorer;
-use KinoSearch::Search::TopDocCollector;
+use KinoSearch::Search::HitCollector::TopDocCollector;
use KinoTestUtils qw( modulo_set doc_nums_from_td_coll );

my $sim = KinoSearch::Search::Similarity->new;
@@ -36,7 +36,8 @@
$and_scorer->add_subscorer($mock);
}
my @expected = intersect(@doc_num_arrays);
- my $collector = KinoSearch::Search::TopDocCollector->new( size => 1000 );
+ my $collector = KinoSearch::Search::HitCollector::TopDocCollector->new(
+ size => 1000 );
$and_scorer->collect( collector => $collector );
is( $collector->get_total_hits,
scalar @expected,

Modified: trunk/perl/t/518-or_scorer.t
===================================================================
--- trunk/perl/t/518-or_scorer.t 2008-07-29 17:16:41 UTC (rev 3661)
+++ trunk/perl/t/518-or_scorer.t 2008-07-29 20:15:13 UTC (rev 3662)
@@ -7,7 +7,7 @@
use KinoSearch::Search::ORScorer;
use KinoSearch::Search::Similarity;
use KSx::Search::MockScorer;
-use KinoSearch::Search::TopDocCollector;
+use KinoSearch::Search::HitCollector::TopDocCollector;
use KinoTestUtils qw( modulo_set doc_nums_from_td_coll );

my $sim = KinoSearch::Search::Similarity->new;
@@ -39,7 +39,8 @@
similarity => $sim,
subscorers => $subscorers,
);
- my $collector = KinoSearch::Search::TopDocCollector->new( size => 100 );
+ my $collector = KinoSearch::Search::HitCollector::TopDocCollector->new(
+ size => 100 );
$or_scorer->collect( collector => $collector );
my ( $got_by_score, $got_by_num ) = doc_nums_from_td_coll($collector);
my ( $expected_by_count, $expected_by_num )

Modified: trunk/perl/t/519-req_opt_scorer.t
===================================================================
--- trunk/perl/t/519-req_opt_scorer.t 2008-07-29 17:16:41 UTC (rev 3661)
+++ trunk/perl/t/519-req_opt_scorer.t 2008-07-29 20:15:13 UTC (rev 3662)
@@ -7,7 +7,7 @@
use KinoSearch::Search::RequiredOptionalScorer;
use KSx::Search::MockScorer;
use KinoSearch::Search::Similarity;
-use KinoSearch::Search::TopDocCollector;
+use KinoSearch::Search::HitCollector::TopDocCollector;
use KinoTestUtils qw( modulo_set doc_nums_from_td_coll );

my $sim = KinoSearch::Search::Similarity->new;
@@ -36,7 +36,8 @@
required_scorer => $req_mock,
optional_scorer => $opt_mock,
);
- my $collector = KinoSearch::Search::TopDocCollector->new( size => 1000 );
+ my $collector = KinoSearch::Search::HitCollector::TopDocCollector->new(
+ size => 1000 );
$req_opt_scorer->collect( collector => $collector );
my ( $got_by_score, $got_by_num ) = doc_nums_from_td_coll($collector);
my ( $expected_by_count, $expected_by_num )

Modified: trunk/perl/t/526-not_query.t
===================================================================
--- trunk/perl/t/526-not_query.t 2008-07-29 17:16:41 UTC (rev 3661)
+++ trunk/perl/t/526-not_query.t 2008-07-29 20:15:13 UTC (rev 3662)
@@ -77,8 +77,8 @@
negated_scorer => $mock_scorer,
);
my $bit_vec = KinoSearch::Util::BitVector->new( capacity => 30 );
- my $collector
- = KinoSearch::Search::BitCollector->new( bit_vector => $bit_vec, );
+ my $collector = KinoSearch::Search::HitCollector::BitCollector->new(
+ bit_vector => $bit_vec, );
$not_scorer->collect( collector => $collector );
my $got = $bit_vec->to_arrayref;
is( scalar @$got, scalar @source_nums, "got all docs ($num_negated)" );


_______________________________________________
kinosearch-commits mailing list
kinosearch-commits@rectangular.com
http://www.rectangular.com/mailman/listinfo/kinosearch-commits