---
name: "Lucy::Index::IndexManager"
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::IndexManager"
---

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

Policies governing index updating, locking, and file deletion.

## 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( *\[labeled params\]* )

```
    my $manager = Lucy::Index::IndexManager->new(
        host => $hostname,    # default: ""
    );
```

- •

  **host** - An identifier which should be unique per-machine.

- •

  **lock\_factory** - A LockFactory.

## METHODS

### *make\_write\_lock()*

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

### recycle( *\[labeled params\]* )

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.

### set\_folder(folder)

Setter for `"folder"` member.  Typical clients (Indexer, IndexReader) will use this method to install their own Folder instance.

### *get\_folder()*

Getter for `"folder"` member.

### *get\_host()*

Getter for `"host"` member.

### set\_write\_lock\_timeout(timeout)

Setter for write lock timeout.  Default: 1000 milliseconds.

### *get\_write\_lock\_timeout()*

Getter for write lock timeout.

### set\_write\_lock\_interval(timeout)

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

### *get\_write\_lock\_interval()*

Getter for write lock retry interval.

## INHERITANCE

Lucy::Index::IndexManager isa Lucy::Object::Obj.
