my $chunk;
# Is this an OCLC record?
- if ($conf->{scores}{oclc}) {
- if ($record->field('008')) {
- $chunk = $record->field('008')->as_string();
- push @score, ( $chunk =~ /^o/i ? 1 : 0 );
- } else {
- push @score, 0;
- }
- }
+ if ($conf->{scores}{oclc})
+ { push @score, ( defined $marc->{oclc}[0] ? 1 : 0 ) }
# does 040a contain "dlc"?
if ($conf->{scores}{dlc}) {
if ($conf->{scores}{num_650}) {
if ($record->field('650')) {
my @tags = $record->field('650');
- push @score, scalar @tags;
+ push @score, ( sprintf("%04d", scalar @tags) );
} else {
push @score, '0000';
}
# zero-padded to 4 digits with printf
if ($conf->{scores}{num_tags}) {
my @tags = $record->fields;
- push @score, scalar @tags;
+ push @score, ( sprintf("%04d", scalar @tags) );
}
# encoding level
}
# put score in marc hash
- $marc->{score} = join('', '{oclc:', $score[0], ',dlc:', $score[1],
- ',num_650:', $score[2], ',num_tags:', $score[3],
- ',enc_lvl:', $score[4], '}');
+ my $json = join('', '{oclc:', $score[0], ',dlc:', $score[1],
+ ',num_650:', $score[2], ',num_tags:', $score[3],
+ ',enc_lvl:', $score[4], '}');
+ my $compact = join('', @score);
+ $marc->{score} = "$compact\t$json";
}
=head2 dump_fingerprints