|
Lines 468-513
sub getRecords {
Link Here
|
| 468 |
if ( !$scan && $servers[ $i - 1 ] =~ /biblioserver/ ) { |
468 |
if ( !$scan && $servers[ $i - 1 ] =~ /biblioserver/ ) { |
| 469 |
|
469 |
|
| 470 |
my $jmax = $size>$facets_maxrecs? $facets_maxrecs: $size; |
470 |
my $jmax = $size>$facets_maxrecs? $facets_maxrecs: $size; |
| 471 |
|
471 |
for my $facet ( @$facets ) { |
| 472 |
for ( my $k = 0 ; $k <= @$facets ; $k++ ) { |
|
|
| 473 |
($facets->[$k]) or next; |
| 474 |
my @fcodes = @{$facets->[$k]->{'tags'}}; |
| 475 |
my $sfcode = $facets->[$k]->{'subfield'}; |
| 476 |
|
| 477 |
for ( my $j = 0 ; $j < $jmax ; $j++ ) { |
472 |
for ( my $j = 0 ; $j < $jmax ; $j++ ) { |
| 478 |
my $render_record = $results[ $i - 1 ]->record($j)->render(); |
473 |
my $render_record = $results[ $i - 1 ]->record($j)->render(); |
| 479 |
my @used_datas = (); |
474 |
my @used_datas = (); |
| 480 |
|
475 |
foreach my $tag ( @{$facet->{tags}} ) { |
| 481 |
foreach my $fcode (@fcodes) { |
|
|
| 482 |
|
| 483 |
# avoid first line |
476 |
# avoid first line |
| 484 |
my $field_pattern = '\n'.$fcode.' ([^\n]+)'; |
477 |
my $tag_num = substr($tag, 0, 3); |
|
|
478 |
my $letters = substr($tag, 3); |
| 479 |
my $field_pattern = '\n' . $tag_num . ' ([^\n]+)'; |
| 485 |
my @field_tokens = ( $render_record =~ /$field_pattern/g ) ; |
480 |
my @field_tokens = ( $render_record =~ /$field_pattern/g ) ; |
| 486 |
|
|
|
| 487 |
foreach my $field_token (@field_tokens) { |
481 |
foreach my $field_token (@field_tokens) { |
| 488 |
my $subfield_pattern = '\$'.$sfcode.' ([^\$]+)'; |
482 |
my @subf = ( $field_token =~ /\$([a-zA-Z0-9]) ([^\$]+)/g ); |
| 489 |
my @subfield_values = ( $field_token =~ /$subfield_pattern/g ); |
483 |
my @values; |
| 490 |
|
484 |
for (my $i = 0; $i < @subf; $i += 2) { |
| 491 |
foreach my $subfield_value (@subfield_values) { |
485 |
if ( $letters =~ $subf[$i] ) { |
| 492 |
|
486 |
my $value = $subf[$i+1]; |
| 493 |
my $data = $subfield_value; |
487 |
$value =~ s/^ *//; |
| 494 |
$data =~ s/^\s+//; # trim left |
488 |
$value =~ s/ *$//; |
| 495 |
$data =~ s/\s+$//; # trim right |
489 |
push @values, $value; |
| 496 |
|
|
|
| 497 |
unless ( $data ~~ @used_datas ) { |
| 498 |
$facets_counter->{ $facets->[$k]->{'link_value'} }->{$data}++; |
| 499 |
push @used_datas, $data; |
| 500 |
} |
490 |
} |
| 501 |
} # subfields |
491 |
} |
|
|
492 |
my $data = join($facet->{sep}, @values); |
| 493 |
unless ( $data ~~ @used_datas ) { |
| 494 |
$facets_counter->{ $facet->{idx} }->{$data}++; |
| 495 |
push @used_datas, $data; |
| 496 |
} |
| 502 |
} # fields |
497 |
} # fields |
| 503 |
} # field codes |
498 |
} # field codes |
| 504 |
} # records |
499 |
} # records |
| 505 |
|
500 |
$facets_info->{ $facet->{idx} }->{label_value} = $facet->{label}; |
| 506 |
$facets_info->{ $facets->[$k]->{'link_value'} }->{'label_value'} = $facets->[$k]->{'label_value'}; |
501 |
$facets_info->{ $facet->{idx} }->{expanded} = $facet->{expanded}; |
| 507 |
$facets_info->{ $facets->[$k]->{'link_value'} }->{'expanded'} = $facets->[$k]->{'expanded'}; |
|
|
| 508 |
} # facets |
502 |
} # facets |
| 509 |
} |
503 |
} |
| 510 |
# End PROGILONE |
|
|
| 511 |
} |
504 |
} |
| 512 |
|
505 |
|
| 513 |
# warn "connection ", $i-1, ": $size hits"; |
506 |
# warn "connection ", $i-1, ": $size hits"; |
| 514 |
- |
|
|