NAME

Lucy::Index::BackgroundMerger - Consolidate index segments in the background.

SYNOPSIS

    my $bg_merger = Lucy::Index::BackgroundMerger->new(
        index  => '/path/to/index',
    );
    $bg_merger->commit;

DESCRIPTION

Adding documents to an index is usually fast, but every once in a while the index must be compacted and an update takes substantially longer to complete. See Lucy::Docs::Cookbook::FastUpdates for how to use this class to control worst-case index update performance.

As with Indexer, see Lucy::Docs::FileLocking if your index is on a shared volume.

CONSTRUCTORS

new( [labeled params] )

    my $bg_merger = Lucy::Index::BackgroundMerger->new(
        index   => '/path/to/index',    # required
        manager => $manager             # default: created internally
    );

Open a new BackgroundMerger.

METHODS

commit()

Commit any changes made to the index. Until this is called, none of the changes made during an indexing session are permanent.

Calls prepare_commit() implicitly if it has not already been called.

prepare_commit()

Perform the expensive setup for commit() in advance, so that commit() completes quickly.

Towards the end of prepare_commit(), the BackgroundMerger attempts to re-acquire the write lock, which is then held until commit() finishes and releases it.

optimize()

Optimize the index for search-time performance. This may take a while, as it can involve rewriting large amounts of data.

INHERITANCE

Lucy::Index::BackgroundMerger isa Lucy::Object::Obj.