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.
$index_manager->set_folder($folder); $index_manager->set_folder(); # default: undef
Typical clients (Indexer,
IndexReader) will use this method to install their own Folder instance.
my $folder = $index_manager->get_folder();
my $string = $index_manager->get_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.
my $lock = $index_manager->make_write_lock();
Create the Lock which controls access to modifying the logical content of the index.
Setter for write lock timeout. Default: 1000 milliseconds.
my $int = $index_manager->get_write_lock_timeout();
Getter for write lock 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.
Copyright © 2010-2015 The Apache Software Foundation, Licensed under the
Apache License, Version 2.0.
Apache Lucy, Lucy, Apache, the Apache feather logo, and the Apache Lucy project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.