[Koha-bugs] [Bug 7417] Include alternate forms from authorities in bibliographic searches

bugzilla-daemon at bugs.koha-community.org bugzilla-daemon at bugs.koha-community.org
Fri Sep 7 16:31:08 CEST 2012


http://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=7417

--- Comment #44 from Jared Camins-Esakov <jcamins at cpbibliography.com> ---
(In reply to comment #43)
> UNIMARC QA comment:
> If I'm not mistaking, http://archive.ifla.org/VI/3/p1996-1/uniafull.htm#4--
> says that 4xx are for "see references", it's the same as in marc21
> (http://www.loc.gov/marc/authority/ad4xx.html)
> 
> The 2nd digit is not always the same:
> UNIMARC = 420 See Reference Tracing - Family Name
> MARC21 = 420 does not exits

As I understand it (I asked Francois a while ago), ALL 4xx fields work like
this, so it doesn't matter what the second digit is.

> The code says
> # for each field
> +    foreach my $field ( $record->fields() ) {
> 
> # if there is a link to authorities
> +        my $authid = $field->subfield('9');
> 
> # retrieve the authority
> +        my $authority = Koha::Authority->get_from_authid($authid);
> 
> # if there are seefrom fields
> +        my @seefrom = $auth_marc->field('4..');
> 
> # add them in the biblio record
> 
> # find the biblio record tag
> +            my $tag = substr($field->tag(), 0, 1) .
> substr($authfield->tag(), 1, 2);
> # create a new one, where you'll put datas coming from authorities
> +            my $newfield = MARC::Field->new($tag,
> +                    'z',
> +                    $authfield->indicator(2) || ' ',
> +                    '9' => '1');
> # copy each subfield
> +            foreach my $sub ($authfield->subfields()) {
> +                my ($code,$val) = @$sub;
> +                $newfield->add_subfields( $code => $val );
> +            }
> 
> 
> What I don't understand is the '9' => '1'
> You're connecting all biblios to the #1 authority ? why ?

This is a workaround for a peculiarity in MARC::Record. If you look a bit
further down, you'll see I delete the subfield $9, once I've populated the
other subfields. 
> 
> Another question = why do you set 1st indicator to 'z' ?

I needed some way to CLEARLY identify the field as not being a real part of the
record. Since ind1=z is not valid in MARC, that seemed like a good way.
> 
> Other question = do you have checked performances ? I think that it will be
> a *big* overhead for rebuild_zebra.pl -b -r (ie= rebuilding all the database)
> time rebuild_zebra.pl will give us numbers, that we need to have, at least
> to warn librarians !

I have. That's a good point. The syspref should note it takes twice as long to
rebuild Zebra with this enabled.

> Last question = do you also have checked/tested solr ? I see that you write
> +        if ($record_type eq 'biblio' &&
> C4::Context->preference('IncludeSeeFromInSearches')) {
> +            my $normalizer = Koha::RecordProcessor->new( { filters =>
> 'EmbedSeeFromHeadings' } );
> +            $record = $normalizer->process($record);
> +        }
> in Koha/SearchEngine/Solr/Index.pm (asking Claire in // to get her feedback
> on this)

I have not been able to test it. The Solr dependencies do not compile on Debian
(nor, I think, would Solr run on my little laptop). I thought about not
including the Solr bit, since Solr is still experimental, but decided I would
provide it so that the RM could make that decision.

-- 
You are receiving this mail because:
You are watching all bug changes.


More information about the Koha-bugs mailing list