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

(-)a/Koha/SearchEngine/Elasticsearch.pm (-1 / +38 lines)
Lines 697-702 sub marc_records_to_documents { Link Here
697
                        $altscript = 1;
697
                        $altscript = 1;
698
                    }
698
                    }
699
                }
699
                }
700
                # Handle references to GEOGR_NAME authorities
701
                if ($marcflavour eq 'marc21' && $tag eq '651') {
702
                    $self->embed_geographic_name($field, $record_document, $data_fields_rules);
703
                }
700
704
701
                my $data_field_rules = $data_fields_rules->{$tag};
705
                my $data_field_rules = $data_fields_rules->{$tag};
702
                if ($data_field_rules) {
706
                if ($data_field_rules) {
Lines 979-984 sub marc_records_to_documents { Link Here
979
    return \@record_documents;
983
    return \@record_documents;
980
}
984
}
981
985
986
sub embed_geographic_name {
987
    my ($self, $field, $record_document, $rules) = @_;
988
989
    my $authid = $field->subfield('9');
990
    return unless $authid;
991
    my $authority = Koha::MetadataRecord::Authority->get_from_authid($authid);
992
    return unless $authority;
993
994
    my $tag = '034';
995
996
    my $auth_marc = $authority->record;
997
    my @coordinate_fields = $auth_marc->field($tag);
998
999
    for my $field (@coordinate_fields) {
1000
        my $data_field_rules = $rules->{$tag};
1001
        if ($data_field_rules) {
1002
            my $subfields_mappings = $data_field_rules->{subfields};
1003
            my $wildcard_mappings = $subfields_mappings->{'*'};
1004
            foreach my $subfield ($field->subfields()) {
1005
                my ($code, $data) = @{$subfield};
1006
                my $mappings = $subfields_mappings->{$code} // [];
1007
                if (@{$mappings}) {
1008
                    $self->_process_mappings($mappings, $data, $record_document, {
1009
                            data_source => 'subfield',
1010
                            code => $code,
1011
                            field => $field
1012
                        }
1013
                    );
1014
                }
1015
            }
1016
        }
1017
    }
1018
}
1019
982
=head2 _marc_to_array($record)
1020
=head2 _marc_to_array($record)
983
1021
984
    my @fields = _marc_to_array($record)
1022
    my @fields = _marc_to_array($record)
985
- 

Return to bug 37821