---
name: "Lucy::Search::Matcher"
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::Search::Matcher"
---

# Lucy::Search::Matcher(3pm)

Match a set of document ids.

## NAME

Lucy::Search::Matcher - Match a set of document ids.

## SYNOPSIS

```
    # abstract base class
```

## DESCRIPTION

A Matcher iterates over a set of ascending document ids.  Some Matchers implement *score()* and can assign relevance scores to the docs that they match.  Other implementations may be match-only.

## CONSTRUCTORS

### *new()*

```
    my $matcher = MyMatcher->SUPER::new;
```

Abstract constructor.

## ABSTRACT METHODS

### *next()*

Proceed to the next doc id.

Returns: A positive doc id, or 0 once the iterator is exhausted.

### *get\_doc\_id()*

Return the current doc id.  Valid only after a successful call to *next()* or *advance()* and must not be called otherwise.

### *score()*

Return the score of the current document.

Only Matchers which are used for scored search need implement *score()*.

## METHODS

### advance(target)

Advance the iterator to the first doc id greater than or equal to `"target"`. The default implementation simply calls *next()* over and over, but subclasses have the option of doing something more efficient.

- •

  **target** - A positive doc id, which must be greater than the current doc id once the iterator has been initialized.

Returns: A positive doc id, or 0 once the iterator is exhausted.

## INHERITANCE

Lucy::Search::Matcher isa Lucy::Object::Obj.
