|
Lines 232-238
sub _search {
Link Here
|
| 232 |
&& none { $_ eq $thesaurus } ( |
232 |
&& none { $_ eq $thesaurus } ( |
| 233 |
'lcsh', 'lcac', 'mesh', 'nal', |
233 |
'lcsh', 'lcac', 'mesh', 'nal', |
| 234 |
'notspecified', 'cash', 'rvm', 'sears', |
234 |
'notspecified', 'cash', 'rvm', 'sears', |
| 235 |
'aat' |
235 |
'aat', 'notdefined' |
| 236 |
) |
236 |
) |
| 237 |
) |
237 |
) |
| 238 |
{ |
238 |
{ |
|
Lines 244-249
sub _search {
Link Here
|
| 244 |
'AuthidAsc' |
244 |
'AuthidAsc' |
| 245 |
); |
245 |
); |
| 246 |
( $matched_auths, $total ) = $searcher->search_auth_compat( $search_query, 0, 20, $skipmetadata ); |
246 |
( $matched_auths, $total ) = $searcher->search_auth_compat( $search_query, 0, 20, $skipmetadata ); |
|
|
247 |
|
| 248 |
# We have to make sure that we do not link with an authority record |
| 249 |
# controlling the same term but from a different thesaurus. |
| 250 |
# This means we have to check the content of 040 $f of the authority record. |
| 251 |
my $matched_auths_exact = []; |
| 252 |
for my $matched_auth (@$matched_auths) { |
| 253 |
my $auth = Koha::Authorities->find( $matched_auth->{authid} ); |
| 254 |
unless ($auth) { |
| 255 |
$total--; |
| 256 |
next; |
| 257 |
} |
| 258 |
my $auth_rec = $auth->record; |
| 259 |
my $s040f = $auth_rec->subfield( '040', 'f' ) // ''; |
| 260 |
if ( !$s040f || $s040f eq $thesaurus ) { |
| 261 |
push @{$matched_auths_exact}, $matched_auth; |
| 262 |
} else { |
| 263 |
$total--; |
| 264 |
} |
| 265 |
} |
| 266 |
$matched_auths = $matched_auths_exact; |
| 247 |
} |
267 |
} |
| 248 |
return ( $matched_auths, $total ); |
268 |
return ( $matched_auths, $total ); |
| 249 |
|
269 |
|
| 250 |
- |
|
|