input
url
database
+ bucket
));
use Data::Dump qw/dump/;
=head1 NAME
-WebPAC::Output::Riak - feed data into Riak
+WebPAC::Output::Riak - feed data into Riak Search
=head1 FUNCTIONS
$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;
=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}++;