|
Lines 284-290
sub update_index_background {
Link Here
|
| 284 |
|
284 |
|
| 285 |
=head2 index_records |
285 |
=head2 index_records |
| 286 |
|
286 |
|
| 287 |
This function takes an array of biblionumbers and fetches the records to send to update_index |
287 |
This function takes an array of record numbers and fetches the records to send to update_index |
| 288 |
for actual indexing. |
288 |
for actual indexing. |
| 289 |
|
289 |
|
| 290 |
If $records parameter is provided the records will be used as-is, this is only utilized for authorities |
290 |
If $records parameter is provided the records will be used as-is, this is only utilized for authorities |
|
Lines 296-326
to Zebra as well.
Link Here
|
| 296 |
=cut |
296 |
=cut |
| 297 |
|
297 |
|
| 298 |
sub index_records { |
298 |
sub index_records { |
| 299 |
my ( $self, $biblionumbers, $op, $server, $records ) = @_; |
299 |
my ( $self, $record_numbers, $op, $server, $records ) = @_; |
| 300 |
$biblionumbers = [$biblionumbers] if ref $biblionumbers ne 'ARRAY' && defined $biblionumbers; |
300 |
$record_numbers = [$record_numbers] if ref $record_numbers ne 'ARRAY' && defined $record_numbers; |
| 301 |
$records = [$records] if ref $records ne 'ARRAY' && defined $records; |
301 |
$records = [$records] if ref $records ne 'ARRAY' && defined $records; |
| 302 |
if ( $op eq 'specialUpdate' ) { |
302 |
if ( $op eq 'specialUpdate' ) { |
| 303 |
my $index_biblionumbers; |
303 |
my $index_record_numbers; |
| 304 |
unless ($records) { |
304 |
unless ($records) { |
| 305 |
foreach my $biblionumber ( @$biblionumbers ){ |
305 |
foreach my $record_number ( @$record_numbers ){ |
| 306 |
my $record = C4::Biblio::GetMarcBiblio({ |
306 |
my $record = _get_record( $record_number, $server ); |
| 307 |
biblionumber => $biblionumber, |
|
|
| 308 |
embed_items => 1 }); |
| 309 |
if( $record ){ |
307 |
if( $record ){ |
| 310 |
push @$records, $record; |
308 |
push @$records, $record; |
| 311 |
push @$index_biblionumbers, $biblionumber; |
309 |
push @$index_record_numbers, $record_number; |
| 312 |
} |
310 |
} |
| 313 |
} |
311 |
} |
| 314 |
} |
312 |
} |
| 315 |
$self->update_index_background( $index_biblionumbers, $records ) if $index_biblionumbers && $records; |
313 |
$self->update_index_background( $index_record_numbers, $records ) if $index_record_numbers && $records; |
| 316 |
} |
314 |
} |
| 317 |
elsif ( $op eq 'recordDelete' ) { |
315 |
elsif ( $op eq 'recordDelete' ) { |
| 318 |
$self->delete_index_background( $biblionumbers ); |
316 |
$self->delete_index_background( $record_numbers ); |
| 319 |
} |
317 |
} |
| 320 |
#FIXME Current behaviour is to index Zebra when using ES, at some point we should stop |
318 |
#FIXME Current behaviour is to index Zebra when using ES, at some point we should stop |
| 321 |
Koha::SearchEngine::Zebra::Indexer::index_records( $self, $biblionumbers, $op, $server, undef ); |
319 |
Koha::SearchEngine::Zebra::Indexer::index_records( $self, $record_numbers, $op, $server, undef ); |
| 322 |
} |
320 |
} |
| 323 |
|
321 |
|
|
|
322 |
sub _get_record { |
| 323 |
my ( $id, $server ) = @_; |
| 324 |
return $server eq 'biblioserver' |
| 325 |
? C4::Biblio::GetMarcBiblio({ biblionumber => $id, embed_items => 1 }) |
| 326 |
: C4::AuthoritiesMarc::GetAuthority($id); |
| 327 |
} |
| 328 |
|
| 324 |
=head2 delete_index($biblionums) |
329 |
=head2 delete_index($biblionums) |
| 325 |
|
330 |
|
| 326 |
C<$biblionums> is an arrayref of biblionumbers to delete from the index. |
331 |
C<$biblionums> is an arrayref of biblionumbers to delete from the index. |
| 327 |
- |
|
|