124 |
|
|
125 |
=head2 search |
=head2 search |
126 |
|
|
127 |
my $m->search( 'query phrase', 'result_template.tt', \@add_attr ); |
my $m->search( |
128 |
|
phrase => 'query phrase', |
129 |
|
template => 'result_template.tt', |
130 |
|
add_attr => \@add_attr |
131 |
|
); |
132 |
|
|
133 |
=cut |
=cut |
134 |
|
|
135 |
sub search { |
sub search { |
136 |
my ( $self, $query, $template, $add_attr ) = @_; |
my $self = shift; |
137 |
|
|
138 |
|
my $args = {@_}; |
139 |
|
|
140 |
my $log = $self->{log}; |
my $log = $self->{log}; |
141 |
|
|
142 |
$log->debug("search model query: '$query', add_attr: '" . join("','", @{$add_attr}) . "'"); |
$log->debug("args: " . Dumper( $args )); |
143 |
|
|
144 |
|
my $query = $args->{phrase} || $log->warn("no query phrase") && return; |
145 |
|
|
146 |
my $template_filename = $template || $self->{template}; |
$log->debug("search model query: '$query', add_attr: '" . join("','", @{$args->{add_attr}}) . "'"); |
147 |
|
|
148 |
|
my $template_filename = $args->{template} || $self->{template}; |
149 |
|
|
150 |
my @results = $self->{est}->search( |
my @results = $self->{est}->search( |
151 |
phrase => $query, |
phrase => $query, |
152 |
get_attr => [ '@uri' ], |
get_attr => [ '@uri' ], |
153 |
max => $self->{est}->{hits_on_page} || 30, |
max => ( $self->{est}->{hits_on_page} || 30 ), |
154 |
add_attr => $add_attr, |
add_attr => $args->{add_attr}, |
155 |
); |
); |
156 |
|
|
157 |
$log->debug("loading " . ($#results + 1) . " results"); |
my $hits = $#results + 1; |
158 |
|
|
159 |
|
$log->debug("processing $hits results"); |
160 |
|
|
161 |
my @html_results; |
my @html_results; |
162 |
|
|