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/