Project Lucy has retired. For details please refer to its Attic page.
Lucy::Index::BackgroundMerger – C API Documentation
Apache Lucy™

Lucy::Index::BackgroundMerger

parcel Lucy
class variable LUCY_BACKGROUNDMERGER
struct symbol lucy_BackgroundMerger
class nickname lucy_BGMerger
header file Lucy/Index/BackgroundMerger.h

Name

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

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 FastUpdates for how to use this class to control worst-case index update performance.

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

Functions

new
lucy_BackgroundMerger* // incremented
lucy_BGMerger_new(
    cfish_Obj *index,
    lucy_IndexManager *manager
);

Open a new BackgroundMerger.

index

Either a string filepath or a Folder.

manager

An IndexManager. If not supplied, an IndexManager with a 10-second write lock timeout will be created.

init
lucy_BackgroundMerger*
lucy_BGMerger_init(
    lucy_BackgroundMerger *self,
    cfish_Obj *index,
    lucy_IndexManager *manager
);

Initialize a BackgroundMerger.

index

Either a string filepath or a Folder.

manager

An IndexManager. If not supplied, an IndexManager with a 10-second write lock timeout will be created.

Methods

Optimize
void
lucy_BGMerger_Optimize(
    lucy_BackgroundMerger *self
);

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

Commit
void
lucy_BGMerger_Commit(
    lucy_BackgroundMerger *self
);

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
void
lucy_BGMerger_Prepare_Commit(
    lucy_BackgroundMerger *self
);

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.

Inheritance

Lucy::Index::BackgroundMerger is a Clownfish::Obj.