NAME

Data::SearchEngine::Results - Results of a Data::SearchEngine serach

SYNOPSIS

The Results object holds the list of items found during a query. They are usually sorted by a score. This object provides some standard attributes you are likely to use.

use Data::SearchEngine::Item;
use Data::SearchEngine::Results;
use Time::HiRes;

sub query {

    # boring, search specific implementation
    
    my $results = Data::SearchEngine::Results->new(
        query       => $query
        pager       => Data::Page->new(...)
    );

    my $start = time;
    foreach $product (@sorted_products) {
        my $item = Data::SearchEngine::Item->new(
            id      => $product->id,            # unique product id
            score   => $scores->{$product->id}  # make your own scores
        ));

        $item->set_value('url', 'http://example.com/product/'.$product->id);
        $item->set_value('price', $product->price);

        $results->add($item);
    }
    $results->elapsed(time - $start);

    return $results;
}

SERIALIZATION

This module uses MooseX::Storage::Deferred to provide serialization. You may serialize it thusly:

my $json = $results->freeze({ format => 'JSON' };
# ...
my $results = Data::SearchEngine::Results->thaw($json, { format => 'JSON' });

ATTRIBUTES

elapsed

The time it took to complete this search.

items

The list of Data::SearchEngine::Items found for the query.

pager

The Data::Page for this result.

query

The Data::SearchEngine::Query that yielded this Results object.

METHODS

Appends an Item onto the end of this Results object's item list.

Gets the item at the specified index.

AUTHOR

Cory G Watson, <gphat at cpan.org>

COPYRIGHT & LICENSE

Copyright 2009 Cory G Watson

This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.

See http://dev.perl.org/licenses/ for more information.

2 POD Errors

The following errors were encountered while parsing the POD:

Around line 107:

Unknown directive: =head

Around line 111:

Unknown directive: =head