---
name: "Lucy::Index::BackgroundMerger"
section: "3pm"
platform: "linux"
package: "liblucy-perl"
version: "0.3.3-7+b1"
release: "Debian 9 (Stretch)"
platforms: ["linux"]
url: "https://new.carta.tech/Lucy::Index::BackgroundMerger"
---

# Lucy::Index::BackgroundMerger(3pm)

Consolidate index segments in the background.

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

- •

  **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

### *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.
