Author image Marvin Humphrey
and 1 contributors


KinoSearch::Search::Searcher - Base class for searching collections of documents.


The KinoSearch code base has been assimilated by the Apache Lucy project. The "KinoSearch" namespace has been deprecated, but development continues under our new name at our new home:


    # Abstract base class.


Abstract base class for objects which search. Core subclasses include KinoSearch::Search::IndexSearcher and KinoSearch::Search::PolySearcher.


new( [labeled params] )

    package MySearcher;
    use base qw( KinoSearch::Search::Searcher );
    sub new {
        my $self = shift->SUPER::new;
        return $self;

Abstract constructor.

  • schema - A Schema.


collect( [labeled params] )

Iterate over hits, feeding them into a Collector.

  • query - A Query.

  • collector - A Collector.


Return the maximum number of docs in the collection represented by the Searcher, which is also the highest possible internal doc id. Documents which have been marked as deleted but not yet purged are included in this count.

doc_freq( [labeled params] )

Return the number of documents which contain the term in the given field.

  • field - Field name.

  • term - The term to look up.


Retrieve a document. Throws an error if the doc id is out of range.

  • doc_id - A document id.


hits( [labeled params] )

Return a Hits object containing the top results.

  • query - Either a Query object or a query string.

  • offset - The number of most-relevant hits to discard, typically used when "paging" through hits N at a time. Setting offset to 20 and num_wanted to 10 retrieves hits 21-30, assuming that 30 hits can be found.

  • num_wanted - The number of hits you would like to see after offset is taken into account.

  • sort_spec - A KinoSearch::Search::SortSpec, which will affect how results are ranked and returned.


If the supplied object is a Query, return it; if it's a query string, create a QueryParser and parse it to produce a query against all indexed fields.


Accessor for the object's schema member.


KinoSearch::Search::Searcher isa KinoSearch::Object::Obj.


Copyright 2005-2011 Marvin Humphrey

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.