---
name: "Lucy::Highlight::Highlighter"
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::Highlight::Highlighter"
---

# Lucy::Highlight::Highlighter(3pm)

Create and highlight excerpts.

## NAME

Lucy::Highlight::Highlighter - Create and highlight excerpts.

## SYNOPSIS

```
    my $highlighter = Lucy::Highlight::Highlighter->new(
        searcher => $searcher,
        query    => $query,
        field    => 'body'
    );
    my $hits = $searcher->hits( query => $query );
    while ( my $hit = $hits->next ) {
        my $excerpt = $highlighter->create_excerpt($hit);
        ...
    }
```

## DESCRIPTION

The Highlighter can be used to select relevant snippets from a document, and to surround search terms with highlighting tags.  It handles both stems and phrases correctly and efficiently, using special-purpose data generated at index-time.

## CONSTRUCTORS

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

```
    my $highlighter = Lucy::Highlight::Highlighter->new(
        searcher       => $searcher,    # required
        query          => $query,       # required
        field          => 'content',    # required
        excerpt_length => 150,          # default: 200
    );
```

- •

  **searcher** - An object which inherits from Searcher, such as an IndexSearcher.

- •

  **query** - Query object or a query string.

- •

  **field** - The name of the field from which to draw the excerpt.  The field must marked as be `"highlightable"` (see FieldType).

- •

  **excerpt\_length** - Maximum length of the excerpt, in characters.

## METHODS

### create\_excerpt(hit\_doc)

Take a HitDoc object and return a highlighted excerpt as a string if the HitDoc has a value for the specified `"field"`.

### highlight(text)

Highlight a small section of text.  By default, prepends pre-tag and appends post-tag.  This method is called internally by *create\_excerpt()* when assembling an excerpt.

### encode(text)

Encode text with HTML entities. This method is called internally by *create\_excerpt()* for each text fragment when assembling an excerpt.  A subclass can override this if the text should be encoded differently or not at all.

### set\_pre\_tag(pre\_tag)

Setter.  The default value is "\<strong\>".

### *get\_pre\_tag()*

Accessor.

### set\_post\_tag(post\_tag)

Setter.  The default value is "\</strong\>".

### *get\_post\_tag()*

Accessor.

### *get\_searcher()*

Accessor.

### *get\_query()*

Accessor.

### *get\_compiler()*

Accessor for the Lucy::Search::Compiler object derived from `"query"` and `"searcher"`.

### *get\_excerpt\_length()*

Accessor.

### *get\_field()*

Accessor.

## INHERITANCE

Lucy::Highlight::Highlighter isa Lucy::Object::Obj.
