View | Details | Raw Unified | Return to bug 12347
Collapse All | Expand All

(-)a/C4/Search.pm (-31 / +21 lines)
Lines 485-502 sub getRecords { Link Here
485
                            $tmprecord->append_fields($tmptitle);
485
                            $tmprecord->append_fields($tmptitle);
486
                            $tmprecord->append_fields($tmpauthor);
486
                            $tmprecord->append_fields($tmpauthor);
487
                        }
487
                        }
488
                        $results_hash->{'RECORDS'}[$j] =
488
                        $results_hash->{'RECORDS'}[$j] = $tmprecord;
489
                          $tmprecord->as_usmarc();
490
                    }
489
                    }
491
490
492
                    # not an index scan
491
                    # not an index scan
493
                    else {
492
                    else {
494
                        $record = $results[ $i - 1 ]->record($j)->raw();
493
                        $record = new_record_from_zebra (
495
                        # warn "RECORD $j:".$record;
494
                                'biblioserver',
495
                                $results[ $i - 1 ]->record($j)->raw()
496
                        );
497
498
                        if ( ! defined $record ) {
499
                            warn "ERROR DECODING RECORD - $@: " .
500
                                $results[ $i - 1 ]->record($j)->raw();
501
                            next;
502
                        }
503
496
                        $results_hash->{'RECORDS'}[$j] = $record;
504
                        $results_hash->{'RECORDS'}[$j] = $record;
497
                    }
505
                    }
498
506
499
                }
507
                }
508
500
                $results_hashref->{ $servers[ $i - 1 ] } = $results_hash;
509
                $results_hashref->{ $servers[ $i - 1 ] } = $results_hash;
501
510
502
# Fill the facets while we're looping, but only for the biblioserver and not for a scan
511
# Fill the facets while we're looping, but only for the biblioserver and not for a scan
Lines 507-522 sub getRecords { Link Here
507
                    for my $facet (@$facets) {
516
                    for my $facet (@$facets) {
508
                        for ( my $j = 0 ; $j < $jmax ; $j++ ) {
517
                        for ( my $j = 0 ; $j < $jmax ; $j++ ) {
509
518
510
                            my $marc_record = new_record_from_zebra (
519
                            my $marc_record =
511
                                    'biblioserver',
520
                                $results_hashref->{ $servers[ $i - 1 ] }->{'RECORDS'}[$j];
512
                                    $results[ $i - 1 ]->record($j)->raw()
521
                            # we skip bad records
513
                            );
522
                            next if ( !defined $marc_record );
514
515
                            if ( ! defined $marc_record ) {
516
                                warn "ERROR DECODING RECORD - $@: " .
517
                                    $results[ $i - 1 ]->record($j)->raw();
518
                                next;
519
                            }
520
523
521
                            my @used_datas = ();
524
                            my @used_datas = ();
522
525
Lines 528-533 sub getRecords { Link Here
528
                                # Removed when as_string fixed
531
                                # Removed when as_string fixed
529
                                my @subfields = $subfield_letters =~ /./sg;
532
                                my @subfields = $subfield_letters =~ /./sg;
530
533
534
                                # Check $tag_num is a valid field for $marc_record
531
                                my @fields = $marc_record->field($tag_num);
535
                                my @fields = $marc_record->field($tag_num);
532
                                foreach my $field (@fields) {
536
                                foreach my $field (@fields) {
533
                                    my $data = $field->as_string( $subfield_letters, $facet->{sep} );
537
                                    my $data = $field->as_string( $subfield_letters, $facet->{sep} );
Lines 1715-1736 sub searchResults { Link Here
1715
    # loop through all of the records we've retrieved
1719
    # loop through all of the records we've retrieved
1716
    for ( my $i = $offset ; $i <= $times - 1 ; $i++ ) {
1720
    for ( my $i = $offset ; $i <= $times - 1 ; $i++ ) {
1717
1721
1718
        my $marcrecord;
1722
        my $marcrecord = $marcresults->[$i];
1719
        if ($scan) {
1723
        # we skip bad records
1720
            # For Scan searches we built USMARC data
1724
        next if ( !defined $marcrecord );
1721
            $marcrecord = MARC::Record->new_from_usmarc( $marcresults->[$i]);
1722
        } else {
1723
            # Normal search, render from Zebra's output
1724
            $marcrecord = new_record_from_zebra(
1725
                'biblioserver',
1726
                $marcresults->[$i]
1727
            );
1728
1729
            if ( ! defined $marcrecord ) {
1730
                warn "ERROR DECODING RECORD - $@: " . $marcresults->[$i];
1731
                next;
1732
            }
1733
        }
1734
1725
1735
        my $fw = $scan
1726
        my $fw = $scan
1736
             ? undef
1727
             ? undef
1737
- 

Return to bug 12347