# Auto-generated file -- DO NOT EDIT!!!!!

=head1 NAME

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

=head1 SYNOPSIS

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



=head1 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.

=head1 CONSTRUCTORS

=head2 new( I<[labeled params]> )

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

=over

=item *

B<searchable> - An object which inherits from 
L<Searchable|KinoSearch::Search::Searchable>, such as a
L<Searcher|KinoSearch::Searcher>.

=item *

B<query> - Query object or a query string.

=item *

B<field> - The name of the field from which to draw the excerpt.  The
field must marked as be C<highlightable> (see
L<FieldType|KinoSearch::FieldType>).

=item *

B<excerpt_length> - Maximum length of the excerpt, in characters.

=back



=head1 METHODS

=head2 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 C<< field >>.

=head2 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.

=head2 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.

=head2 set_pre_tag(pre_tag)

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

=head2 get_pre_tag()

Accessor.

=head2 set_post_tag(post_tag)

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

=head2 get_post_tag()

Accessor.

=head2 get_searchable()

Accessor.

=head2 get_query()

Accessor.

=head2 get_compiler()

Accessor for the KinoSearch::Search::Compiler object derived from
C<< query >> and C<< searchable >>.

=head2 get_excerpt_length()

Accessor.

=head2 get_field()

Accessor.





=head1 INHERITANCE

KinoSearch::Highlight::Highlighter isa L<KinoSearch::Obj>.


=head1 COPYRIGHT

Copyright 2005-2009 Marvin Humphrey

=head1 LICENSE, DISCLAIMER, BUGS, etc.

See L<KinoSearch> version 0.30.

=cut