KinoSearch::Search::PolySearcher - Aggregate results from multiple Searchers.
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 );
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.
my $poly_searcher = KinoSearch::Search::PolySearcher->new(
schema => $schema,
searchers => \@searchers,
);
Return a Hits object containing the top results.
offset to 20 and num_wanted to 10 retrieves
hits 21-30, assuming that 30 hits can be found.
offset is taken into account.
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.
Return the number of documents which contain the term in the given field.
Retrieve a document. Throws an error if the doc id is out of range.
Accessor for the object's schema member.
KinoSearch::Search::PolySearcher isa 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.