The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

SWISH::Prog::Searcher - base searcher class

SYNOPSIS

 my $searcher = SWISH::Prog::Searcher->new(
                    invindex        => 'path/to/index',
                    query_class     => 'SWISH::Prog::Query',
                    query_parser    => $swish_prog_queryparser,
                    config          => $swish_prog_config,
                    max_hits        => 100,
                    sort_order      => 'swishrank',
                );
                
 my $results = $searcher->search( 'foo bar' );
 while (my $result = $results->next) {
     printf("%4d %s\n", $result->score, $result->uri);
 }

DESCRIPTION

SWISH::Prog::Searcher is a base searcher class. It defines the APIs that all SWISH::Prog storage backends adhere to in returning results from a SWISH::Prog::InvIndex.

METHODS

init

Overrides base method.

config

A SWISH::Prog::Config object. Required. Set in new().

invindex

A SWISH::Prog::InvIndex object or directory path. Required. Set in new().

max_hits

The maximum number of hits to return. Optional. Default is 1000.

query_class

Default is SWISH::Prog::Query.

query_parser

A SWISH::Prog::QueryParser object. Optional. Set in new().

sort_order

The order in which Results will be sorted. Default is descending by swishrank.

search( query )

Returns a SWISH::Prog::Results object.

check_query( query )

Utility method, intended to be called from search().

Example:

 sub search {
     my $self = shift;
     my $args = $self->check_query(@_);
     # $self->query now guaranteed to contain a Query object.
 }

AUTHOR

Peter Karman, <perl@peknet.com>

BUGS

Please report any bugs or feature requests to bug-swish-prog at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=SWISH-Prog. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

You can find documentation for this module with the perldoc command.

    perldoc SWISH::Prog

You can also look for information at:

COPYRIGHT AND LICENSE

Copyright 2008-2009 by Peter Karman

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

SEE ALSO

http://swish-e.org/