KinoSearch::Search::PolySearcher - Aggregate results from multiple Searchers.


KinoSearch documentation  | view source Contained in the KinoSearch distribution.

Index


NAME

Top

KinoSearch::Search::PolySearcher - Aggregate results from multiple Searchers.

SYNOPSIS

Top

    my $schema = MySchema->new;
    for my $server_name (@server_names) {
        push @searchers, KSx::Remote::SearchClient->new(
            peer_address => "$server_name:$port",
            password     => $pass,
            schema       => $schema,
        );
    }
    my $poly_searcher = KinoSearch::Search::PolySearcher->new(
        schema    => $schema,
        searchers => \@searchers,
    );
    my $hits = $poly_searcher->hits( query => $query );







DESCRIPTION

Top

The primary use for PolySearcher is to aggregate results from several remote Searchers via KSx::Remote::SearchClient, diffusing the cost of searching a large corpus over multiple machines. It is also possible to aggregate results from multiple Searchers on a single machine.

CONSTRUCTORS

Top

new( [labeled params] )

    my $poly_searcher = KinoSearch::Search::PolySearcher->new(
        schema    => $schema,
        searchers => \@searchers,
    );

METHODS

Top

hits( [labeled params] )

Return a Hits object containing the top results.

doc_max()

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.

fetch_doc(doc_id)

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

get_schema()

Accessor for the object's schema member.

INHERITANCE

Top

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

COPYRIGHT AND LICENSE

Top


KinoSearch documentation  | view source Contained in the KinoSearch distribution.