NAME
Lucy::Index::IndexManager - Policies governing index updating, locking, and file deletion.
SYNOPSIS
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.