Marvin Humphrey
and 1 contributors

NAME

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

DEPRECATED

The KinoSearch code base has been assimilated by the Apache Lucy project. The "KinoSearch" namespace has been deprecated, but development continues under our new name at our new home: http://lucy.apache.org/

SYNOPSIS

    my $highlighter = KinoSearch::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 = KinoSearch::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 KinoSearch::Search::Compiler object derived from query and searcher.

get_excerpt_length()

Accessor.

get_field()

Accessor.

INHERITANCE

KinoSearch::Highlight::Highlighter isa KinoSearch::Object::Obj.

COPYRIGHT AND LICENSE

Copyright 2005-2011 Marvin Humphrey

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.