--- lib/CouchDB/Estraier.pm 2008/08/04 15:07:34 1 +++ lib/CouchDB/Estraier.pm 2008/08/05 13:34:06 3 @@ -3,8 +3,12 @@ use strict; use warnings; +our $VERSION = '0.01'; + use Search::Estraier; use Data::Dump qw/dump/; +use Getopt::Long; +use JSON; =head1 NAME @@ -20,12 +24,10 @@ estuser => 'admin', estpasswd => 'admin', quiet => 0, - FullTextSearchQueryServer => 0, - DbUpdateNotificationProcess => 0, }; -=head2 run +=head2 run_search Process command line options and start helper @@ -33,38 +35,47 @@ =cut -sub run { - my $self = shift; - GetOptions($c, qw/node_url=s debug+ quiet+ estuser=s estpasswd=s dbuser=s dbpasswd=s/) or die $!; - warn "# c: ", dump($c) if ($c->{debug}); - if ( $c->{FullTextSearchQueryServer} ) { - while ( 1 ) { - my $database = <>; - my $query_string = <>; - chomp $database; - chomp $query_string; - $self->search( $database, $query_string ); - } - } else { - while ( 1 ) { - my $database = <>; - my $query_string = <>; - chomp $database; - chomp $query_string; - $self->add( $database, $query_string ); - } +GetOptions($c, qw/node_url=s debug+ quiet+ estuser=s estpasswd=s dbuser=s dbpasswd=s/) or die $!; +warn "# c: ", dump($c) if ($c->{debug}); + +open(my $log, '>', '/tmp/couchdb-estraier.log'); + +sub run_search { + while ( 1 ) { + my $database = ; + die unless defined $database; + my $query_string = ; + chomp $database; + chomp $query_string; + print $log "run_search $database\t$query_string\n"; + search( $database, $query_string ); + } +} + +sub run_update { + while ( 1 ) { + my $database = ; + die unless defined $database; + my $json = ; + chomp $database; + chomp $json; + print $log "run_update $database\t$json\n"; + add( $database, from_json( $json ) ); } } =head2 add - CouchDB::Estraier->add( $database, $data ); + CouchDB::Estraier::add( $database, $data ); =cut sub add { - my ( $self, $database, $data ) = @_; + my ( $database, $data ) = @_; + + print $log "add $database ",dump( $data ),"\n"; + return; # create and configure node my $node = new Search::Estraier::Node( @@ -107,12 +118,12 @@ Implementation specification: L - CouchDB::Estraier->search( $database, $query ); + CouchDB::Estraier::search( $database, $query ); =cut sub search { - my ( $self, $database, $query ) = @_; + my ( $database, $query ) = @_; # create and configure node my $node = new Search::Estraier::Node(