Changeset 12373


Ignore:
Timestamp:
2006-08-02T13:19:10+12:00 (18 years ago)
Author:
mdewsnip
Message:

Bit tidy up, particularly regarding command-line option parsing.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/gsdl/bin/script/lucene_query.pl

    r12364 r12373  
    3131    die "GSDLOS not set\n" unless defined $ENV{'GSDLOS'};
    3232    unshift (@INC, "$ENV{'GSDLHOME'}/perllib");
    33     unshift (@INC, "$ENV{'GSDLHOME'}/perllib/cpan");
    34     unshift (@INC, "$ENV{'GSDLHOME'}/perllib/plugins");
    35     unshift (@INC, "$ENV{'GSDLHOME'}/perllib/classify");
    3633}
    3734
     35use strict;
    3836use util;
    3937
    40 sub full_indexdir
    41 {
    42     my ($col_name,$indexdir) = @_;
    4338
    44     my $full_indexdir
    45     = &util::filename_cat($ENV{'GSDLHOME'},"collect",$col_name,"index",
    46                   $indexdir);
    47 
    48     return $full_indexdir;
    49 }
     39my $PROGNAME = $0;
     40$PROGNAME =~ s/^.*\/(.*)$/$1/;
    5041
    5142
     
    5344{
    5445    my $full_indexdir = shift(@_);
    55     my $sort_field = 0;
    56     my $dco = 0;
    57     my $out_file = 0;
    58     for ($i = 0; $i < scalar(@_); $i++)
    59       {
    60         if ($_[$i] eq "-sort")
    61           {
    62             $i++;
    63             $sort_field = $_[$i];
    64           }
    65         elsif ($_[$i] eq "-dco")
    66           {
    67             $i++;
    68             $dco = $_[$i];
    69           }
    70         else
    71           {
    72             $out_file = $_[$i];
    73           }
    74       }
     46    my $fuzzy = shift(@_);
     47    my $sort_field = shift(@_);
     48    my $dco = shift(@_);
     49    my $out_file = shift(@_);
    7550
     51    my $classpath = &util::filename_cat($ENV{'GSDLHOME'}, "bin", "java", "LuceneWrap.jar");
     52    my $java_lucene = "java -classpath \"$classpath\" org.nzdl.gsdl.LuceneWrap.GS2LuceneQuery";
    7653
    77     my $bin_java = &util::filename_cat($ENV{'GSDLHOME'},"bin","java");
    78     my $classpath = &util::filename_cat($bin_java,"LuceneWrap.jar");
    79 
    80     my $java_lucene = "java -classpath \"$classpath\" org.nzdl.gsdl.LuceneWrap.GS2LuceneQuery";
    81     my $java_cmd = "$java_lucene";
    82 
     54    my $cmd = "| " . $java_lucene . " \"" . $full_indexdir . "\"";
     55    if (defined($fuzzy)) {
     56        $cmd .= " -fuzzy";
     57    }
     58    if (defined($sort_field)) {
     59        $cmd .= " -sort " . $sort_field;
     60    }
     61    if (defined($dco)) {
     62        $cmd .= " -dco " . $dco;
     63    }
    8364    if (defined($out_file)) {
    84     $out_file = " > \"".$out_file. "\"";
    85     } else {
    86     $out_file = "";
     65    $cmd .= " > \"" . $out_file . "\"";
    8766    }
    88 
    89     my $cmd = "| " . $java_cmd . " \"" . $full_indexdir . "\"";
    90     if ($sort_field)
    91       {
    92         $cmd .= " -sort " . $sort_field;
    93       }
    94     if ($dco)
    95       {
    96         $cmd .= " -dco " . $dco;
    97       }
    98 
    99     print STDERR $cmd . "\n";
     67    # print STDERR $cmd . "\n";
    10068
    10169    if (!open (PIPEOUT, $cmd)) {
    102     die "$PROGNAME - couldn't run $java_cmd\n";
     70    die "$PROGNAME - couldn't run $cmd\n";
    10371    }
    10472}
     
    11381    my (@argv) = @_;
    11482    my $argc = scalar(@argv);
    115 
    116     my $full_indexdir;
    117     my $query = undef;
    118     my $sort_field = undef;
    119     my $out_file = undef;
    12083    if ($argc == 0) {
    121     print STDERR "Usage: $PROGNAME full-index-dir [query] [sort_field] [outfile]\n";
     84    print STDERR "Usage: $PROGNAME full-index-dir [query] [-fuzzy] [-sort sort_field] [-dco AND|OR] [-out out_file]\n";
    12285    exit 1;
    12386    }
    124     if ($argc >= 1) {
    125     $full_indexdir = $argv[0];
     87
     88    my $full_indexdir = shift(@argv);
     89    my $query = undef;
     90    my $fuzzy = undef;
     91    my $sort_field = undef;
     92    my $dco = undef;
     93    my $out_file = undef;
     94    for (my $i = 0; $i < scalar(@argv); $i++)
     95    {
     96    if ($argv[$i] eq "-fuzzy") {
     97        $fuzzy = 1;
     98    }
     99        elsif ($argv[$i] eq "-sort") {
     100            $i++;
     101            $sort_field = $argv[$i];
     102    }
     103        elsif ($argv[$i] eq "-dco") {
     104            $i++;
     105            $dco = $argv[$i];
     106    }
     107        elsif ($argv[$i] eq "-out") {
     108            $i++;
     109            $out_file = $argv[$i];
     110    }
     111        else {
     112            $query = $argv[$i];
     113    }
    126114    }
    127     if ($argc >= 2) {
    128     $query = $argv[1];
    129     }
    130     if ($argc >= 3) {
    131     $sort_field = $argv[2];
    132     }
    133     if ($argc >= 4) {
    134     $out_file = $argv[3];
    135     }
    136     open_java_lucene($full_indexdir, $sort_field, $out_file);
     115
     116    open_java_lucene($full_indexdir, $fuzzy, $sort_field, $dco, $out_file);
    137117
    138118    if (defined $query) {
     
    148128}
    149129
    150 $PROGNAME = $0;
    151 $PROGNAME =~ s/^.*\/(.*)$/$1/;
    152 
    153130&main(@ARGV);
    154 
Note: See TracChangeset for help on using the changeset viewer.