NAME
   Net::Riak - Interface to Riak

VERSION
   version 0.1702

SYNOPSIS
       # REST interface
       my $client = Net::Riak->new(
           host => 'http://10.0.0.40:8098',
           ua_timeout => 900,
       );

       # Or PBC interface.
       my $client = Net::Riak->new(
           transport => 'PBC',
           host => '10.0.0.40',
           port => 8080
       );

       my $bucket = $client->bucket('blog');
       my $obj    = $bucket->new_object('new_post', {title => 'foo', content => 'bar'});
       $obj->store;

       $obj = $bucket->get('new_post');
       say "title for ".$obj->key." is ".$obj->data->{title};

       # Indexing and searching (REST interface)
       $client->setup_indexing("bucket_name");
       ...adding documents to riak...
       my $response = $client->search(
           index => 'bucket_name',
           q     => 'field:value'
       );

       # Secondary index setup (REST interface)
       my $obj3 = $bucket->new_object('foo3', {...});
       $obj3->add_index('myindex_bin','myvalue' );
       $obj3->add_index('number_int', 1001);
       $obj3->store;

       # Get all keys for a specific index/value pair
       my @keys = $client->index('mybucket', 'myindex_bin', 'myvalue' );

       # Get all keys for a range of index value pairs
       my @keys = $client->index('mybucket', 'number_int', 500, 1500);

       # Removing a secondary index (REST interface)
       my $new_obj = $bucket->get('foo3');
       $new_obj->remove_index('number_int', 1001);
       $new_obj->store;

DESCRIPTION
 ATTRIBUTES
   host
     REST: The URL of the node

     PBC: The hostname of the node

     default 'http://127.0.0.1:8098'

     Note that providing multiple hosts is now deprecated.

   port
     Port of the PBC interface.

   transport
     Used to select the PB protocol by passing in 'PBC'

   prefix
     Interface prefix (default 'riak')

   mapred_prefix
     MapReduce prefix (default 'mapred')

   r R value setting for this client (default 2)

   w W value setting for this client (default 2)

   dw
     DW value setting for this client (default 2)

   client_id
     client_id for this client

   ua_timeout (REST only)
     timeout for LWP::UserAgent in seconds, defaults to 3.

   disable_return_body (REST only)
     Disable returning of object content in response in a store operation.

     If set to true and the object has siblings these will not be available
     without an additional fetch.

     This will become the default behaviour in 0.17

METHODS
 bucket
       my $bucket = $client->bucket($name);

   Get the bucket by the specified name. Since buckets always exist, this
   will always return a Net::Riak::Bucket

 is_alive
       if (!$client->is_alive) {
           ...
       }

   Check if the Riak server for this client is alive

 all_buckets
   List all buckets, requires Riak 0.14+ or PBC connection.

 add
       my $map_reduce = $client->add('bucket_name', 'key');

   Start assembling a Map/Reduce operation

 link
       my $map_reduce = $client->link();

   Start assembling a Map/Reduce operation

 map
       my $map_reduce = $client->add('bucket_name', 'key')->map("function ...");

   Start assembling a Map/Reduce operation

 reduce
       my $map_reduce = $client->add(..)->map(..)->reduce("function ...");

   Start assembling a Map/Reduce operation

 server_info (PBC only)
       $client->server_info->{server_version};

 stats (REST only)
       say Dumper $client->stats;

 search (REST only)
       $client->search( index => 'bucket_name', q => 'field:value' );

   Makes a query to the index (see Net::Riak::Search for more details on
   parameters)

 setup_indexing (REST only)
       $client->setup_indexing('bucket_name');

   Define precommit hook in order to enable indexing documents written into
   the given bucket

SEE ALSO
   Net::Riak::MapReduce

   Net::Riak::Object

   Net::Riak::Bucket

AUTHOR
   franck cuny <[email protected]>, robin edwards <[email protected]>

COPYRIGHT AND LICENSE
   This software is copyright (c) 2013 by linkfluence.

   This is free software; you can redistribute it and/or modify it under
   the same terms as the Perl 5 programming language system itself.