Marvin Humphrey

NAME

KinoSearch1::Search::Hits - access search results

SYNOPSIS

    my $hits = $searcher->search( query => $query );
    $hits->seek( 0, 10 );
    while ( my $hashref = $hits->fetch_hit_hashref ) {
        print "<p>$hashref->{title} <em>$hashref->{score}</em></p>\n";
    }

DESCRIPTION

Hits objects are used to access the results of a search. By default, a hits object provides access to the top 100 matches; the seek() method provides finer-grained control.

A classic application would be paging through hits. The first time, seek to a START of 0, and retrieve 10 documents. If the user wants to see more -- and there are more than 10 total hits -- seek to a START of 10, and retrieve 10 more documents. And so on.

METHODS

seek

    $hits->seek( START, NUM_TO_RETRIEVE );

Position the Hits iterator at START, and capture NUM_TO_RETRIEVE docs.

total_hits

    my $num_that_matched = $hits->total_hits;

Return the total number of documents which matched the query used to produce the Hits object. (This number is unlikely to match NUM_TO_RETRIEVE.)

fetch_hit

    while ( my $hit = $hits->fetch_hit ) {
        # ...
    }

Return the next hit as a KinoSearch1::Search::Hit object.

fetch_hit_hashref

    while ( my $hashref = $hits->fetch_hit_hashref ) {
        # ...
    }

Return the next hit as a hashref, with the field names as keys and the field values as values. An entry for score will also be present, as will an entry for excerpt if create_excerpts() was called earlier. However, if the document contains stored fields named "score" or "excerpt", they will not be clobbered.

create_excerpts

    my $highlighter = KinoSearch1::Highlight::Highlighter->new(
        excerpt_field => 'bodytext',    
    );
    $hits->create_excerpts( highlighter => $highlighter );

Use the supplied highlighter to generate excerpts. See KinoSearch1::Highlight::Highlighter.

COPYRIGHT

Copyright 2005-2010 Marvin Humphrey

LICENSE, DISCLAIMER, BUGS, etc.

See KinoSearch1 version 1.01.




Hosting generously
sponsored by Bytemark