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:
Fridolin Somers 2018-11-19 15:19:46 +01:00 committed by Joy Nelson
parent 36a84f4264
commit ee25606e8a
1 changed files with 19 additions and 6 deletions

View File

@ -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'};