Bug 21865: ES compatiblity of remove_unused_authorities.pl
The script misc/migration_tools/remove_unused_authorities.pl directly checks if Zebra search is OK.
This patch changes so that this test is only if Zebra is the search engine.
It also adds a test on the search off any authority number indexed (index 'an').
With Zebra its : an,alwaysmatches=''
With ES its : an:*
This test ensure that biblios records are indexed and that not all autorities will be deleted.
Test plan:
1) On a catalog create a new authority
2) Use Zebra in systempreference SearchEngine
3) Stop Zebra server
4) Run misc/migration_tools/remove_unused_authorities.pl -c
5) The script does nothing and says :
Zebra server seems not to be available. This script needs Zebra runs.
6) Restart Zebra server
7) Delete biblio index base
8) Run misc/migration_tools/remove_unused_authorities.pl -c
9) The script does nothing and says :
Searching authority number in biblio records seems not to be available : an,alwaysmatches=''
10) Use ElasticSearch in systempreference SearchEngine
11) Delete biblio index base
12) Run misc/migration_tools/remove_unused_authorities.pl -c
13) The script does nothing and says :
Searching authority number in biblio records seems not to be available : an:*
Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Joy Nelson <joy@bywatersolutions.com>
This commit is contained in:
parent
36a84f4264
commit
ee25606e8a
|
|
@ -49,11 +49,25 @@ if (@authtypes) {
|
|||
print "Restricted to authority type(s) : ".join(',', @authtypes).".\n";
|
||||
}
|
||||
|
||||
my $errZebraConnection = C4::Context->Zconn("biblioserver",0)->errcode();
|
||||
if ( $errZebraConnection == 10000 ) {
|
||||
die "Zebra server seems not to be available. This script needs Zebra runs.";
|
||||
} elsif ( $errZebraConnection ) {
|
||||
die "Error from Zebra: $errZebraConnection";
|
||||
my $searcher = Koha::SearchEngine::Search->new( { index => 'biblios' } );
|
||||
my $checksearch;
|
||||
if ( C4::Context->preference("SearchEngine") eq 'Zebra' ) {
|
||||
# Check server state
|
||||
my $errZebraConnection = C4::Context->Zconn("biblioserver",0)->errcode();
|
||||
if ( $errZebraConnection == 10000 ) {
|
||||
die "Zebra server seems not to be available. This script needs Zebra runs.";
|
||||
} elsif ( $errZebraConnection ) {
|
||||
die "Error from Zebra: $errZebraConnection";
|
||||
}
|
||||
$checksearch = q{an,alwaysmatches=''};
|
||||
}
|
||||
else {
|
||||
$checksearch = q{an:*};
|
||||
}
|
||||
# Check search on authority number as at least one result
|
||||
my ($err,$res,$nb) = $searcher->simple_search_compat($checksearch,0,10);
|
||||
unless ($nb > 0) {
|
||||
die "Searching authority number in biblio records seems not to be available : $checksearch";
|
||||
}
|
||||
|
||||
my $dbh=C4::Context->dbh;
|
||||
|
|
@ -68,7 +82,6 @@ $rqselect->execute(@authtypes);
|
|||
my $counter=0;
|
||||
my $totdeleted=0;
|
||||
my $totundeleted=0;
|
||||
my $searcher = Koha::SearchEngine::Search->new({index => 'biblios'});
|
||||
while (my $data=$rqselect->fetchrow_hashref){
|
||||
$counter++;
|
||||
print 'authid='.$data->{'authid'};
|
||||
|
|
|
|||
Loading…
Reference in New Issue