From: Dobrica Pavlinusic Date: Sat, 13 Nov 2010 15:29:18 +0000 (+0000) Subject: finish riak search support X-Git-Url: http://git.rot13.org/?a=commitdiff_plain;h=c3e1ecbea085188f27934d3d36229c75781113ab;p=webpac2 finish riak search support git-svn-id: svn+ssh://mjesec/home/dpavlin/svn/webpac2/trunk@1357 07558da8-63fa-0310-ba24-9fe276d99e06 --- diff --git a/lib/WebPAC/Output/Riak.pm b/lib/WebPAC/Output/Riak.pm index 5ca5a8c..ef8de6d 100644 --- a/lib/WebPAC/Output/Riak.pm +++ b/lib/WebPAC/Output/Riak.pm @@ -8,6 +8,7 @@ __PACKAGE__->mk_accessors(qw( input url database + bucket )); use Data::Dump qw/dump/; @@ -16,7 +17,7 @@ use Net::Riak; =head1 NAME -WebPAC::Output::Riak - feed data into Riak +WebPAC::Output::Riak - feed data into Riak Search =head1 FUNCTIONS @@ -32,10 +33,16 @@ sub init { $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 @@ Adds one entry to database. =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}++; diff --git a/vhost/koha/config.yml b/vhost/koha/config.yml index 0646f02..661b101 100644 --- a/vhost/koha/config.yml +++ b/vhost/koha/config.yml @@ -18,6 +18,9 @@ databases: normalize: path: 'vhost/koha/marc.pl' output: - module: 'WebPAC::Output::SWISH' - database: 'ecas' + - module: 'WebPAC::Output::SWISH' + database: 'koha' + - module: 'WebPAC::Output::Riak' + url: 'http://10.60.0.92:8098' +# bucket: 'webpac2koha'