Data-SearchEngine

 view release on metacpan or  search on metacpan

t/lib/SearchEngineWee.pm  view on Meta::CPAN

            if(lc($prod->{description}) =~ /$part/) {
                $score++;
            }

            next unless $score > 0;

            if(defined($item)) {
                $item->score($score);
            } else {
                my $item = Data::SearchEngine::Item->new(
                    id          => $prod->{id},
                    score       => $score
                );
                $item->set_value('description', $prod->{description});
                $item->set_value('name', $prod->{name});
                $items{$prod->{id}} = $item;
            }
        }
    }

    my @sorted_keys = sort { $items{$b}->score <=> $items{$a}->score } keys %items;

    my @sorted = ();
    foreach my $s (@sorted_keys) {
        push(@sorted, $items{$s});
    }

    return SEWeeResults->new(
        query => $oquery,
        pager => Data::SearchEngine::Paginator->new(
            entries_per_page => 1,
            total_entries => scalar(@sorted)
        ),
        items => \@sorted,
        elapsed => time - $start
    );
}

sub find_by_id {}

sub remove {
    my ($self, $prod) = @_;

    $self->delete($prod->{name});
}

sub remove_by_id {
	my ($self, $id) = @_;

    foreach my $key ($self->keys) {

        my $prod = $self->get($key);
		if($prod->{id} eq $id) {
			$self->delete($key);
			return 1;
		}
	}
	return 0;
}

sub update {
    my ($self, $prod) = @_;

    $self->set($prod->{name}, $prod);
}

1;



( run in 0.646 second using v1.01-cache-2.11-cpan-e1769b4cff6 )