#!/usr/bin/perl 
use lib("/www/opals/module");
use Opals::Context('/etc/opals/conf/ztest');

use strict;
use DBI;
use Getopt::Std;
use POSIX qw(
    ceil
    floor
);
use Time::localtime;
use XML::SAX;
use base qw( XML::SAX::Base );
use Opals::MarcXmlParser; 
use Opals::SolrIndex qw(
    slr_search
    slr_buildSearchQuery
    slr_buildSearchQuery_ARL
    slr_getSuggestion
    slr_updateIndexDir
    slr_updateIndexFile
    slr_delIndex
    slr_browseSubject_beginWith
    slr_browseSubject_keyword
    slr_browseAuthor_keyword
    
);
print 'STARTTIME: ', `date -R`, "\n";
#testSearchARL();
testSearch1();
#testSuggestion();

    my $marcXmlParser=Opals::MarcXmlParser->new("/etc/opals/solr/conf/indexConf.xml") ;
    #print $marcXmlParser->getSolrRecXml_file("/data/idzebra/210/record/ztest/1/3.xml");
    #print $marcXmlParser->getSolrRecXml_file("/tmp/21488.xml");
    
#slr_updateIndexDir("/data/idzebra/210/record/ztest");
#slr_delIndex(21488)    ;
#slr_updateIndexFile("/tmp/21488.xml");
#slr_updateIndexFile("/data/idzebra/210/record/ztest/1/633.xml");
 

#testSbjectBrowse();
print 'END TIME: ', `date -R`, "\n";

sub testSbjectBrowse{
    #my ($hits,$sbjList)=slr_browseSubject_beginWith("arts");
    my ($hits,$sbjList)=slr_browseAuthor_keyword("ruth");
    print "$hits\n";
    foreach my $s(@$sbjList){
        print "\t$s\n";
    }
}   
sub testSearchARL{
    my  $input={title=>"math",program=>'accelerated reader',pointvalueFrom=>2.1};
    my $lquery=slr_buildSearchQuery_ARL($input);;
    print "$lquery\n";
}
 
#########################################
sub testSearch1{
    my($str)=@_;
    print "$str\n";
    my $input={sf0=>'1016',kw0=>'montreal',boolop0=>'OR',sf1=>'1003',kw1=>'new brunswick',boolop1=>'OR',recType=>'Journal'};
    my $lQuery=slr_buildSearchQuery($input);
    print "query:$lQuery\n";
    my ($hits,$recList)= slr_search($lQuery,'brief');

 
    print "hits $hits\n";
    foreach my $rec (@$recList){
    print "===================================\n";
    foreach my $fname (keys %$rec){
        if (ref($rec->{$fname}) eq "ARRAY"){
            print "$fname:\n";
            foreach my $v(@{$rec->{$fname}}){
                print "\t* $v->{'item'}\n";
            }
        }
        else{
            printf ("% 18s:%s\n", $fname,$rec->{$fname});
        }
    }

   }
}

#########################################
sub testSearch2{

    my $input={sf0=>'1016',kw0=>'montreal',boolop0=>'OR',sf1=>'1003',kw1=>'new brunswick',boolop1=>'OR'};
    my $lQuery=slr_buildSearchQuery($input);
    my ($hits,$recList)= slr_search($lQuery,'detail');

 
    print "hits $hits\n";
    foreach my $rec (@$recList){
    print "===================================\n";
    foreach my $fname (keys %$rec){
        if (ref($rec->{$fname}) eq "ARRAY"){
            print "$fname:\n";
            foreach my $v(@{$rec->{$fname}}){
                print "\t* $v\n";
            }
        }
        else{
            print "$fname:", $rec->{$fname}, "\n";
        }
    }

   }
}
#########################################
sub testSearch3{

    my $input={sf0=>'1016',kw0=>'montreal',boolop0=>' OR ',sf1=>'1003',kw1=>'new brunswick',boolop1=>' OR '};
    my $lQuery=slr_buildSearchQuery($input);
    my ($hits,$recList)= slr_search($lQuery,'marcXml',0,3);

 
    print "hits $hits\n";
    foreach my $rec (@$recList){
        print "$rec\n";
     }

   
}

#########################################
#test Suggestion   
sub testSuggestion{
       
my $suggestion= slr_getSuggestion('anywhere','caffe');
print "suggestion:$suggestion\n";
my $suggestion= slr_getSuggestion('title','neew bruinswik');
print "suggestion title:$suggestion\n";
my $suggestion= slr_getSuggestion('author','neew bruinswik');
print "suggestion author:$suggestion\n";
}
# /test suggestion

#########################################

1;
exit 0;

