NAME¶
LucyX::Remote::SearchServer - Make a Searcher remotely accessible.
SYNOPSIS¶
my $searcher = Lucy::Search::IndexSearcher->new(
index => '/path/to/index'
);
my $search_server = LucyX::Remote::SearchServer->new(
searcher => $searcher
);
$search_server->serve(
port => 7890
);
DESCRIPTION¶
The SearchServer class, in conjunction with either SearchClient or
ClusterSearcher, makes it possible to run a search on one machine and report
results on another.
By aggregating several SearchClients under a ClusterSearcher, the cost of
searching what might have been a prohibitively large monolithic index can be
distributed across multiple nodes, each with its own, smaller index.
METHODS¶
new¶
my $search_server = LucyX::Remote::SearchServer->new(
searcher => $searcher, # required
);
Constructor. Takes hash-style parameters.
- •
- searcher - the Searcher that the SearchServer will wrap.
serve¶
$search_server->serve(
port => 7890, # required
);
Open a listening socket on localhost and wait for SearchClients to connect.
- •
- port - the port on localhost that the server should open and listen
on.
serve_rpc¶
my $status = $search_server->serve_rpc($sock);
Handle a single RPC from socket $sock. Returns 'done' if the connection should
be closed. Returns 'terminate' if the server should shut down. Returns
'continue' if the server should continue to handle requests from this
client.