---
name: "Plucene::TestCase"
section: "3pm"
platform: "linux"
package: "libplucene-perl"
version: "1.25-5"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Plucene::TestCase"
---

# Plucene::TestCase(3pm)

Handy functions when testing Plucene

## NAME

Plucene::TestCase - Handy functions when testing Plucene

## SYNOPSIS

```
        use Test::More tests => 10;
        use Plucene::TestCase;
        new_index {
                add_document( foo => "bar" );
        };
        re_index {
                add_document( foo => "baz" );
        }
        with_reader {
                $READER->whatever;
        }
        my $hits = search("foo:ba*");
```

## EXPORTS

- $DIR

  A directory which is created for the purposes of this test, in which the index will be placed. It will normally be cleaned up at the end of the test, unless `$Plucene::TestCase::DEBUG` is set to allow you to peruse the entrails.

- $WRITER

  A variable holding the current `"Index::Writer"` object, if there is one.

- $READER

  A variable holding the current `"Index::Reader"` object, if there is one.

- $ANALYZER

  A variable holding the class name of the desired `"Analysis::Analyzer"` class.

- new\_index BLOCK (Analyzer)

  Create a new index, and do the following stuff in the block before closing the index writer. `$WRITER` is set for the duration of the block.

  The optional parameter should be the class name of the analyzer to use; if not specified, the value from `$ANALYZER`, which in turn defaults to `"Plucene::Analysis::SimpleAnalyzer"`, will be used.

- re\_index BLOCK (Analyzer)

  Same as `"new_index"`, but doesn't create a new index, rather re-uses an old one.

- add\_document( field1 =\> value1, ...)

  Add a new document to the index, with the given fields and values

- with\_reader BLOCK

  Opens an index reader in `$READER` and runs the block.

- search

  Searches for the query given. If any fields are not specified, they will be assumed to be the default `"text"`. Returns a `"Plucene::Search::Hits"` object. The value of `$ANALYZER` will be used to construct an analyzer for the query string.

## POD ERRORS

Hey! **The above document had some coding errors, which are explained below:**

- Around line 49:

  \=over without closing =back
