# Auto-generated file -- DO NOT EDIT!!!!!

=head1 NAME

KinoSearch::Search::Searchable - Base class for searchers.

=head1 SYNOPSIS

    # Abstract base class.



=head1 DESCRIPTION

Abstract base class for objects which search.  Core subclasses include
L<KinoSearch::Searcher> and L<KinoSearch::Search::PolySearcher>.

=head1 CONSTRUCTORS

=head2 new( I<[labeled params]> )

    package MySearchable;
    use base qw( KinoSearch::Search::Searchable );
    sub new {
        my $self = shift->SUPER::new;
        ...
        return $self;
    }

Abstract constructor.

=over

=item *

B<schema> - A KinoSearch::Schema.

=back



=head1 METHODS

=head2 hits( I<[labeled params]> )

Return a Hits object containing the top results.

=over

=item *

B<query> - Either a Query object or a query string.

=item *

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

=item *

B<num_wanted> - The number of hits you would like to see after
C<< offset >> is taken into account.

=item *

B<sort_spec> - A L<KinoSearch::Search::SortSpec>, which will affect
how results are ranked and returned.

=back

=head2 glean_query(query)

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.

=head2 get_schema()

Accessor for the object's C<< schema >> member.



=head1 ABSTRACT METHODS

=head2 collect( I<[labeled params]> )

Iterate over hits, feeding them into a
L<HitCollector|KinoSearch::Search::HitCollector>.

=over

=item *

B<query> - A Query.

=item *

B<collector> - A HitCollector.

=back

=head2 doc_max()

Return the maximum number of docs in the collection represented by
the Searchable, which is also the highest possible doc id.  Deleted
docs are included in this count.

=head2 doc_freq( I<[labeled params]> )

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

=over

=item *

B<field> - Field name.

=item *

B<term> - The term to look up.

=back

=head2 fetch_doc( I<[labeled params]> )

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

=over

=item *

B<doc_id> - A document id.

=item *

B<score> - A floating point score.

=item *

B<offset> - Amount to be added to the doc_id if this Searchable is a
subcomponent of another.

=back



=head1 INHERITANCE

KinoSearch::Search::Searchable isa L<KinoSearch::Obj>.


=head1 COPYRIGHT AND LICENSE

Copyright 2005-2009 Marvin Humphrey

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

=cut