The Perl and Raku Conference 2025: Greenville, South Carolina - June 27-29 Learn more

NAME

KSx::Remote::SearchServer - Make a Searcher remotely accessible.

SYNOPSIS

my $searcher = KinoSearch::Search::IndexSearcher->new(
index => '/path/to/index'
);
my $search_server = KSx::Remote::SearchServer->new(
searcher => $searcher,
port => 7890,
password => $pass,
);
$search_server->serve;

DESCRIPTION

The SearchServer class, in conjunction with SearchClient, makes it possible to run a search on one machine and report results on another.

By aggregating several SearchClients under a PolySearcher, 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 = KSx::Remote::SearchServer->new(
searcher => $searcher, # required
port => 7890, # required
password => $pass, # required
);

Constructor. Takes hash-style parameters.

  • searcher - the Searcher that the SearchServer will wrap.

  • port - the port on localhost that the server should open and listen on.

  • password - a password which must be supplied by clients.

serve

$search_server->serve;

Open a listening socket on localhost and wait for SearchClients to connect.

COPYRIGHT AND LICENSE

Copyright 2006-2011 Marvin Humphrey

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