X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=samples%2Fzoom%2Fzoomscan.pl;h=b18c9d7093b966e8ebdc8d81bf04e8cb4e107b2d;hb=85bf9282f0c6453984e3a28457e122ffe33e140f;hp=cf787fa013e8d9b18ec829534e88188e27842fcc;hpb=5c8d12edf996f7f58dd7d4f0325a8d6dd712b669;p=ZOOM-Perl-moved-to-github.git diff --git a/samples/zoom/zoomscan.pl b/samples/zoom/zoomscan.pl index cf787fa..b18c9d7 100644 --- a/samples/zoom/zoomscan.pl +++ b/samples/zoom/zoomscan.pl @@ -1,24 +1,35 @@ -# $Id: zoomscan.pl,v 1.2 2007-08-16 16:21:08 mike Exp $ -# +#!/usr/bin/perl -w + # This is the scanning counterpart to zoomscan.pl's searching # perl -I../../blib/lib -I../../blib/arch zoomscan.pl +# +# For example (using Z39.50 and SRW, Type-1 and CQL): +# perl zoomscan.pl tcp:localhost:8018/IR-Explain---1 '@attr 1=dc.title the' +# perl zoomscan.pl http://localhost:8018/IR-Explain---1 '@attr 1=dc.title the' +# perl zoomscan.pl -q http://localhost:8018/IR-Explain---1 'dc.title=the' use strict; use warnings; +use Getopt::Std; use ZOOM; -if (@ARGV != 2) { - print STDERR "Usage: $0 target scanQuery\n"; - print STDERR " eg. $0 z3950.indexdata.dk/gils computer\n"; +my %opts; +if (!getopts('q', \%opts) || @ARGV != 2) { + print STDERR "Usage: $0 [options] target scanQuery + -q Query is CQL [default: PQF] + eg. $0 z3950.indexdata.dk/gils computer\n"; exit 1; } + my($host, $scanQuery) = @ARGV; eval { my $conn = new ZOOM::Connection($host, 0); $conn->option(preferredRecordSyntax => "usmarc"); - ### Could use ZOOM::Query::CQL below, but that only work in SRU/W. - my $ss = $conn->scan(new ZOOM::Query::PQF($scanQuery)); + ### Could use ZOOM::Query::CQL below, but that only works in SRU/W. + my $q = $opts{q} ? new ZOOM::Query::CQL($scanQuery) : + new ZOOM::Query::PQF($scanQuery); + my $ss = $conn->scan($q); my $n = $ss->size(); for my $i (0..$n-1) { my($term, $occ) = $ss->term($i);