From d85a4eb792e96eb17f25db73029361e5fa4cc81d Mon Sep 17 00:00:00 2001 From: Andreas Romeyke <andreas.romeyke@slub-dresden.de> Date: Mon, 13 Feb 2023 16:26:23 +0100 Subject: [PATCH] - added exact match - rosetta expects "+" as sign to combine subqueries via logical and --- lib/SLUB/LZA/Rosetta/TA/Command/search.pm | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/lib/SLUB/LZA/Rosetta/TA/Command/search.pm b/lib/SLUB/LZA/Rosetta/TA/Command/search.pm index 1125748..c7d730b 100644 --- a/lib/SLUB/LZA/Rosetta/TA/Command/search.pm +++ b/lib/SLUB/LZA/Rosetta/TA/Command/search.pm @@ -2,8 +2,6 @@ package SLUB::LZA::Rosetta::TA::Command::search; use strict; use warnings; use feature qw(say); - - use SLUB::LZA::Rosetta::TA -command; sub abstract {"searches Rosetta based Archival Information System";} @@ -82,7 +80,7 @@ sub execute { } my @queries; if (exists $opt->{source}) { - push @queries, "IE.sourceMD.content=$opt->{source}"; + push @queries, "IE.sourceMD.content==$opt->{source}"; } if (exists $opt->{ie}) { push @queries, "IE.dc.identifier==$opt->{ie}"; @@ -97,30 +95,31 @@ sub execute { push @queries, "FILE.objectCharacteristics.modificationDate==$opt->{modificationdate}"; } if (exists $opt->{'with_format'}) { - push @queries, "FILE.generalFileCharacteristics.formatLibraryId=$opt->{'with_format'}"; + push @queries, "FILE.generalFileCharacteristics.formatLibraryId==$opt->{'with_format'}"; } # unsupported by Rosetta <= 7.0 #if (exists $opt->{'without_format'}) { # push @queries, "FILE.generalFileCharacteristics.formatLibraryId!=$opt->{'without_format'}"; #} if (exists $opt->{'with_valid_files'}) { - push @queries, "FILE.fileValidation.isValid=true"; + push @queries, "FILE.fileValidation.isValid==true"; } if (exists $opt->{'with_invalid_files'}) { - push @queries, "FILE.fileValidation.isValid=false"; + push @queries, "FILE.fileValidation.isValid==false"; } if (exists $opt->{'with_passed_viruschecks'}) { - push @queries, "FILE.fileVirusCheck.status=true"; + push @queries, "FILE.fileVirusCheck.status==true"; } if (exists $opt->{'with_failed_viruschecks'}) { - push @queries, "FILE.fileVirusCheck.status=false"; + push @queries, "FILE.fileVirusCheck.status==false"; } if (exists $opt->{'with_missed_viruschecks'}) { push @queries, "FILE.fileVirusCheck.status==%22%22"; } - my $query = join(" and ", @queries); + #my $query = join(" and ", @queries); + my $query = join("+", @queries); if (exists $opt->{debug}) { use Data::Printer; p( $opt); -- GitLab