Lucy::Index::IndexManager - Policies governing index updating, locking, and file deletion.
use Sys::Hostname qw( hostname ); my $hostname = hostname() or die "Can't get unique hostname"; my $manager = Lucy::Index::IndexManager->new( host => $hostname, ); # Index time: my $indexer = Lucy::Index::Indexer->new( index => '/path/to/index', manager => $manager, ); # Search time: my $reader = Lucy::Index::IndexReader->open( index => '/path/to/index', manager => $manager, ); my $searcher = Lucy::Search::IndexSearcher->new( index => $reader );
IndexManager is an advanced-use class for controlling index locking, updating, merging, and deletion behaviors.
IndexManager and Architecture are complementary classes: Architecture is used to define traits and behaviors which cannot change for the life of an index; IndexManager is used for defining rules which may change from process to process.
my $manager = Lucy::Index::IndexManager->new( host => $hostname, # default: "" );
Create a new IndexManager.
host - An identifier which should be unique per-machine.
lock_factory - A LockFactory.
$index_manager->set_folder($folder); $index_manager->set_folder(); # default: undef
Setter for folder member. Typical clients (Indexer, IndexReader) will use this method to install their own Folder instance.
folder
my $folder = $index_manager->get_folder();
Getter for folder member.
my $string = $index_manager->get_host();
Getter for host member.
host
my $arrayref = $index_manager->recycle( reader => $reader, # required del_writer => $del_writer, # required cutoff => $cutoff, # required optimize => $optimize, # default: false );
Return an array of SegReaders representing segments that should be consolidated. Implementations must balance index-time churn against search-time degradation due to segment proliferation. The default implementation prefers small segments or segments with a high proportion of deletions.
reader - A PolyReader.
del_writer - A DeletionsWriter.
cutoff - A segment number which all returned SegReaders must exceed.
optimize - A boolean indicating whether to spend extra time optimizing the index for search-time performance.
my $lock = $index_manager->make_write_lock();
Create the Lock which controls access to modifying the logical content of the index.
$index_manager->set_write_lock_timeout($timeout);
Setter for write lock timeout. Default: 1000 milliseconds.
my $int = $index_manager->get_write_lock_timeout();
Getter for write lock timeout.
$index_manager->set_write_lock_interval($timeout);
Setter for write lock retry interval. Default: 100 milliseconds.
my $int = $index_manager->get_write_lock_interval();
Getter for write lock retry interval.
Lucy::Index::IndexManager isa Clownfish::Obj.
To install Lucy, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Lucy
CPAN shell
perl -MCPAN -e shell install Lucy
For more information on module installation, please visit the detailed CPAN module installation guide.