Author image Marvin Humphrey
and 1 contributors

NAME

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

SYNOPSIS

    my $highlighter = KinoSearch::Highlight::Highlighter->new;
    $highlighter->add_spec( field => 'body' );

    $hits->create_excerpts( highlighter => $highlighter );

DESCRIPTION

KinoSearch's 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.

METHODS

new

    my $highlighter = KinoSearch::Highlight::Highlighter->new;

Constructor. Takes no arguments.

add_spec

    $highlighter->add_spec(
        field          => 'content',   # required
        excerpt_length => 150,         # default: 200
        formatter      => $formatter,  # default: SimpleHTMLFormatter
        encoder        => $encoder,    # default: SimpleHTMLEncoder
        name           => 'blurb'      # default: value of field param
    );

Add a spec for a single highlighted excerpt. Takes hash-style parameters:

  • field - the name of the field from which to draw the excerpt. The field must be vectorized (which is the default -- see FieldSpec).

  • excerpt_length - the maximum length of the excerpt, in characters.

  • formatter - an object which isa KinoSearch::Highlight::Formatter. Used to perform the actual highlighting.

  • encoder - an object which isa KinoSearch::Highlight::Encoder. All excerpt text gets passed through the encoder, including highlighted terms. By default, this is a SimpleHTMLEncoder, which encodes HTML entities.

  • name - the key which will identify the excerpt in the excerpts hash. Multiple excerpts with different specifications can be created from the same source field using different values for name.

COPYRIGHT

Copyright 2005-2007 Marvin Humphrey

LICENSE, DISCLAIMER, BUGS, etc.

See KinoSearch version 0.20.