--- trunk/lib/WebPAC/Output/Riak.pm 2010/11/13 01:17:09 1355 +++ trunk/lib/WebPAC/Output/Riak.pm 2010/11/13 15:29:18 1357 @@ -8,6 +8,7 @@ input url database + bucket )); use Data::Dump qw/dump/; @@ -16,7 +17,7 @@ =head1 NAME -WebPAC::Output::Riak - feed data into Riak +WebPAC::Output::Riak - feed data into Riak Search =head1 FUNCTIONS @@ -32,10 +33,16 @@ $log->debug('init'); + my $bucket = $self->bucket || join('.', $self->database, $self->input || 'webpac2' ); + $self->{_riak} = Net::Riak->new( host => $self->url ); - $self->{_bucket} = $self->{_riak}->bucket( $self->database ); + $self->{_bucket} = $self->{_riak}->bucket( $bucket ); + $self->{_bucket}->set_properties({ + precommit => [ { mod => 'riak_search_kv_hook', fun => 'precommit' } ], + }); - $log->info("Riak ",$self->url, " bucket ", $self->database); + $log->info( $self->url,"/riak/$bucket" ); +# warn dump($self->{_bucket}->get_properties); $self->{_count} = 0; @@ -51,17 +58,23 @@ =cut -sub add_row { - my $self = shift; +sub add { + my ($self,$id,$ds) = @_; + my $log = $self->_get_logger; - my ( $id, $ds ) = @_; +# $log->debug( 'ds = ', $id, sub { dump($ds) } ); - my $log = $self->_get_logger; + my $data; + $data->{$_} = join(' ', @{ $ds->{$_}->{search} }) foreach + map { m/^\d+$/ ? $_ = $_ . '_num' : $_ } + # add _num suffix for riak search https://wiki.basho.com/display/RIAK/Riak+Search+-+Schema + grep { exists $ds->{$_}->{search} } + keys %$ds; - my $obj = $self->{_bucket}->new_object( $id, $ds ); + my $obj = $self->{_bucket}->new_object( $id, $data ); $obj->store; - $log->debug( $id, sub { dump($ds) } ); + $log->debug( 'json = ', $id, sub { dump($data) } ); $self->{_count}++;