1 package WebPAC::Output::Riak;
6 use base qw/WebPAC::Common WebPAC::Output Class::Accessor/;
7 __PACKAGE__->mk_accessors(qw(
14 use Data::Dump qw/dump/;
20 WebPAC::Output::Riak - feed data into Riak Search
32 my $log = $self->_get_logger;
36 my $bucket = $self->bucket || join('.', $self->database, $self->input || 'webpac2' );
38 $self->{_riak} = Net::Riak->new( host => $self->url );
39 $self->{_bucket} = $self->{_riak}->bucket( $bucket );
40 $self->{_bucket}->set_properties({
41 precommit => [ { mod => 'riak_search_kv_hook', fun => 'precommit' } ],
44 $log->info( $self->url,"/riak/$bucket" );
45 # warn dump($self->{_bucket}->get_properties);
55 Adds one entry to database.
62 my ($self,$id,$ds) = @_;
63 my $log = $self->_get_logger;
65 # $log->debug( 'ds = ', $id, sub { dump($ds) } );
68 $data->{$_->[0]} = $_->[1] foreach
70 my $v = join(' ', @{ $ds->{$_}->{search} });
72 if ( $v =~ m/^\d+([-\d+]*\d)?$/ ) {
75 # _num suffix for riak search https://wiki.basho.com/display/RIAK/Riak+Search+-+Schema
80 grep { exists $ds->{$_}->{search} }
83 my $obj = $self->{_bucket}->new_object( $id, $data );
86 $log->debug( 'json = ', $id, sub { dump($data) } );
102 my $log = $self->_get_logger();
104 $log->info('finish ', $self->{_count}, ' documents');
111 L<https://wiki.basho.com/display/RIAK/Riak+Search>
115 Dobrica Pavlinusic, C<< <dpavlin@rot13.org> >>
117 =head1 COPYRIGHT & LICENSE
119 Copyright 2010 Dobrica Pavlinusic, All Rights Reserved.
121 This program is free software; you can redistribute it and/or modify it
122 under the same terms as Perl itself.
126 1; # End of WebPAC::Output::Riak