Lines 720-726
sub get_components_query {
Link Here
|
720 |
my $volumes = $self->get_marc_volumes(); |
720 |
my $volumes = $self->get_marc_volumes(); |
721 |
|
721 |
|
722 |
Returns an array of MARCXML data, which are volumes parts of |
722 |
Returns an array of MARCXML data, which are volumes parts of |
723 |
this object (MARC21 773$w points to this) |
723 |
this object (MARC21 773$w or 8xx$w point to this) |
724 |
|
724 |
|
725 |
=cut |
725 |
=cut |
726 |
|
726 |
|
Lines 759-764
sub get_volumes_query {
Link Here
|
759 |
|
759 |
|
760 |
# Only build volumes query if we're in a 'Set' record |
760 |
# Only build volumes query if we're in a 'Set' record |
761 |
# or we have a monographic series. |
761 |
# or we have a monographic series. |
|
|
762 |
# For monographic series the check on LDR 7 in (b or i or s) is omitted |
762 |
my $leader19 = substr( $marc->leader, 19, 1 ); |
763 |
my $leader19 = substr( $marc->leader, 19, 1 ); |
763 |
my $pf008 = $marc->field('008') || ''; |
764 |
my $pf008 = $marc->field('008') || ''; |
764 |
my $mseries = ( $pf008 && substr( $pf008->data(), 21, 1 ) eq 'm' ) ? 1 : 0; |
765 |
my $mseries = ( $pf008 && substr( $pf008->data(), 21, 1 ) eq 'm' ) ? 1 : 0; |
Lines 776-787
sub get_volumes_query {
Link Here
|
776 |
|
777 |
|
777 |
if ( !defined($pf003) ) { |
778 |
if ( !defined($pf003) ) { |
778 |
|
779 |
|
779 |
# search for 773$w='Host001' |
780 |
# search for linking_field$w='Host001' |
780 |
$searchstr .= "rcn:" . $pf001->data(); |
781 |
$searchstr .= "rcn:" . $pf001->data(); |
781 |
} else { |
782 |
} else { |
782 |
$searchstr .= "("; |
783 |
$searchstr .= "("; |
783 |
|
784 |
|
784 |
# search for (773$w='Host001' and 003='Host003') or 773$w='(Host003)Host001' |
785 |
# search for (linking_field$w='Host001' and 003='Host003') or linking_field$w='(Host003)Host001' |
785 |
$searchstr .= "(rcn:" . $pf001->data() . " AND cni:" . $pf003->data() . ")"; |
786 |
$searchstr .= "(rcn:" . $pf001->data() . " AND cni:" . $pf003->data() . ")"; |
786 |
$searchstr .= " OR rcn:\"" . $pf003->data() . " " . $pf001->data() . "\""; |
787 |
$searchstr .= " OR rcn:\"" . $pf003->data() . " " . $pf001->data() . "\""; |
787 |
$searchstr .= ")"; |
788 |
$searchstr .= ")"; |
Lines 795-801
sub get_volumes_query {
Link Here
|
795 |
my $cleaned_title = $marc->subfield( '245', "a" ); |
796 |
my $cleaned_title = $marc->subfield( '245', "a" ); |
796 |
$cleaned_title =~ tr|/||; |
797 |
$cleaned_title =~ tr|/||; |
797 |
$cleaned_title = $builder->clean_search_term($cleaned_title); |
798 |
$cleaned_title = $builder->clean_search_term($cleaned_title); |
798 |
$searchstr = "ti,phr:($cleaned_title)"; |
799 |
$searchstr = qq#(title-series,phr:("$cleaned_title") OR Host-item,phr:("$cleaned_title")#; |
|
|
800 |
$searchstr .= " NOT (bib-level:a OR bib-level:b))"; |
799 |
} |
801 |
} |
800 |
|
802 |
|
801 |
return $searchstr; |
803 |
return $searchstr; |