NAME

Lucy::Index::IndexManager - Policies governing index updating, locking, and file deletion.

SYNOPSIS

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 );

DESCRIPTION

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.

CONSTRUCTORS

new

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.

METHODS

set_folder

$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.

get_folder

my $folder = $index_manager->get_folder();

Getter for folder member.

get_host

my $string = $index_manager->get_host();

Getter for host member.

recycle

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.

make_write_lock

my $lock = $index_manager->make_write_lock();

Create the Lock which controls access to modifying the logical content of the index.

set_write_lock_timeout

$index_manager->set_write_lock_timeout($timeout);

Setter for write lock timeout. Default: 1000 milliseconds.

get_write_lock_timeout

my $int = $index_manager->get_write_lock_timeout();

Getter for write lock timeout.

set_write_lock_interval

$index_manager->set_write_lock_interval($timeout);

Setter for write lock retry interval. Default: 100 milliseconds.

get_write_lock_interval

my $int = $index_manager->get_write_lock_interval();

Getter for write lock retry interval.

INHERITANCE

Lucy::Index::IndexManager isa Clownfish::Obj.