link marcxml, specify full limit
authorDobrica Pavlinusic <dpavlin@rot13.org>
Sat, 13 Nov 2010 22:11:42 +0000 (23:11 +0100)
committerDobrica Pavlinusic <dpavlin@rot13.org>
Sat, 13 Nov 2010 22:11:42 +0000 (23:11 +0100)
koha/koha2riak-search.pl

index d89853f..ed6281c 100755 (executable)
@@ -14,7 +14,7 @@ biblio
 );
 
 my $limit;
 );
 
 my $limit;
-$limit = "LIMIT $ENV{LIMIT}" if $ENV{LIMIT};
+$limit = $ENV{LIMIT} if $ENV{LIMIT};
 
 my $dbh = DBI->connect($dbi,"","") || die $DBI::errstr;
 my $riak = RiakSearch->new( $riak_url );
 
 my $dbh = DBI->connect($dbi,"","") || die $DBI::errstr;
 my $riak = RiakSearch->new( $riak_url );
@@ -22,10 +22,15 @@ my $riak = RiakSearch->new( $riak_url );
 warn $riak->request( 'GET' => '/koha.marcxml' );
 
 sub riak_search_kv_hook {
 warn $riak->request( 'GET' => '/koha.marcxml' );
 
 sub riak_search_kv_hook {
-       $riak->request( 'PUT' => shift, { props => { precommit => [ { mod => 'riak_search_kv_hook', fun => 'precommit' } ] } });
+       $riak->request( 'PUT' => shift, { props => {
+               precommit => [ { mod => 'riak_search_kv_hook', fun => 'precommit' } ],
+#              precommit => [],
+#              last_write_wins => 'true',
+               }
+       });
 }
 
 }
 
-riak_search_kv_hook '/koha.marcxml';
+riak_search_kv_hook 'koha.marcxml';
 
 foreach my $table ( @tables ) {
 
 
 foreach my $table ( @tables ) {
 
@@ -40,19 +45,21 @@ foreach my $table ( @tables ) {
     while (my $row = $sth->fetchrow_hashref() ) {
 
         my $key = join('_', map { $row->{$_} } @pk);
     while (my $row = $sth->fetchrow_hashref() ) {
 
         my $key = join('_', map { $row->{$_} } @pk);
+               my $biblionumber = $row->{biblionumber};
 
         if ( my $marcxml = delete $row->{marcxml} ) {
                        $riak->request( 'PUT' => "/koha.marcxml/$key", $marcxml, {
                                'Content-Type' => 'text/xml',
 
         if ( my $marcxml = delete $row->{marcxml} ) {
                        $riak->request( 'PUT' => "/koha.marcxml/$key", $marcxml, {
                                'Content-Type' => 'text/xml',
+                               'Link' => qq|</riak/koha.$table/$biblionumber>; riaktag="biblio"|,
                        } );
         }
 
 #              warn "## $key ",dump($row);
 
                my $headers;
                        } );
         }
 
 #              warn "## $key ",dump($row);
 
                my $headers;
-               if ( my $biblionumber = $row->{biblionumber} ) {
-                       $headers->{Link} = qq|</riak/koha.biblio/$biblionumber>; riaktag="biblio"| unless $key =~ m/biblionumber/;
-               }
+               $headers->{Link} = qq|</riak/koha.biblio/$biblionumber>; riaktag="biblio"|
+               if $biblionumber && $key !~ m/biblionumber/;
+
                $riak->request( 'PUT' => "/koha.$table/$key", $row, $headers );
     }
 
                $riak->request( 'PUT' => "/koha.$table/$key", $row, $headers );
     }