8 |
input |
input |
9 |
url |
url |
10 |
database |
database |
11 |
|
bucket |
12 |
)); |
)); |
13 |
|
|
14 |
use Data::Dump qw/dump/; |
use Data::Dump qw/dump/; |
17 |
|
|
18 |
=head1 NAME |
=head1 NAME |
19 |
|
|
20 |
WebPAC::Output::Riak - feed data into Riak |
WebPAC::Output::Riak - feed data into Riak Search |
21 |
|
|
22 |
=head1 FUNCTIONS |
=head1 FUNCTIONS |
23 |
|
|
33 |
|
|
34 |
$log->debug('init'); |
$log->debug('init'); |
35 |
|
|
36 |
|
my $bucket = $self->bucket || join('.', $self->database, $self->input || 'webpac2' ); |
37 |
|
|
38 |
$self->{_riak} = Net::Riak->new( host => $self->url ); |
$self->{_riak} = Net::Riak->new( host => $self->url ); |
39 |
$self->{_bucket} = $self->{_riak}->bucket( $self->database ); |
$self->{_bucket} = $self->{_riak}->bucket( $bucket ); |
40 |
|
$self->{_bucket}->set_properties({ |
41 |
|
precommit => [ { mod => 'riak_search_kv_hook', fun => 'precommit' } ], |
42 |
|
}); |
43 |
|
|
44 |
$log->info("Riak ",$self->url, " bucket ", $self->database); |
$log->info( $self->url,"/riak/$bucket" ); |
45 |
|
# warn dump($self->{_bucket}->get_properties); |
46 |
|
|
47 |
$self->{_count} = 0; |
$self->{_count} = 0; |
48 |
|
|
58 |
|
|
59 |
=cut |
=cut |
60 |
|
|
61 |
sub add_row { |
sub add { |
62 |
my $self = shift; |
my ($self,$id,$ds) = @_; |
63 |
|
my $log = $self->_get_logger; |
64 |
|
|
65 |
my ( $id, $ds ) = @_; |
# $log->debug( 'ds = ', $id, sub { dump($ds) } ); |
66 |
|
|
67 |
my $log = $self->_get_logger; |
my $data; |
68 |
|
$data->{$_} = join(' ', @{ $ds->{$_}->{search} }) foreach |
69 |
|
map { m/^\d+$/ ? $_ = $_ . '_num' : $_ } |
70 |
|
# add _num suffix for riak search https://wiki.basho.com/display/RIAK/Riak+Search+-+Schema |
71 |
|
grep { exists $ds->{$_}->{search} } |
72 |
|
keys %$ds; |
73 |
|
|
74 |
my $obj = $self->{_bucket}->new_object( $id, $ds ); |
my $obj = $self->{_bucket}->new_object( $id, $data ); |
75 |
$obj->store; |
$obj->store; |
76 |
|
|
77 |
$log->debug( $id, sub { dump($ds) } ); |
$log->debug( 'json = ', $id, sub { dump($data) } ); |
78 |
|
|
79 |
$self->{_count}++; |
$self->{_count}++; |
80 |
|
|