Jeff -

Yup, that should work perfectly.

You will have a secondary index in Riak named "status_bin" and the
value you set in your String 'status' will be the index key for that
object.

Thanks,
_Roach

On Mon, Apr 8, 2013 at 4:02 PM, Jeff Peck <je...@tnrglobal.com> wrote:
> Brian,
>
> Thank you for explaining that and suggesting to extend HashMap. I did exactly 
> that. Here is what it looks like:
>
> class DocMap extends HashMap<String, Object> {
>         /**
>          * Generated id
>          */
>         private static final long serialVersionUID = 5807773481499313384L;
>
>         @RiakIndex(name="status") private String status;
>
>         public String getStatus() {
>                 return status;
>         }
>
>         public void setStatus(String status) {
>                 this.status = status;
>         }
> }
>
> I am about to try it, but I first need to make a few more changes in the code 
> to adapt this new object. In the meantime, would you say that this looks 
> correct and that it would be able to effectively write a status field to a 
> secondary index if I were to use "setStatus"?
>
> Thanks,
> Jeff
>
>
> On Apr 8, 2013, at 5:48 PM, Brian Roach <ro...@basho.com> wrote:
>
>> Jeff,
>>
>> If you're just passing in an instance of the core Java HashMap ... you can't.
>>
>> The way the default JSONConverter works for metadata (such as indexes)
>> is via annotations.
>>
>> The object being passed in needs to have a field annotated with
>> @RiakIndex("index_name"). That field can be a Long/Set<Long> or
>> String/Set<String> (for _int and _bin indexes respectively).
>>
>> These are not converted to JSON so they won't affect your serialized
>> data. You can have multiple fields for multiple indexes.
>>
>> You don't have to append "_int" or "_bin" to the index name in the
>> annotation - it's done automatically based on the type.
>>
>> Easiest thing to do woud be to extend HashMap and simply add the
>> annotated field(s).
>>
>> Thanks,
>> _Roach
>>
>> On Mon, Apr 8, 2013 at 2:56 PM, Jeff Peck <je...@tnrglobal.com> wrote:
>>> Hello,
>>>
>>> I have been looking through the documentation for an example of how to add 
>>> a secondary index in Riak, using the Java client.
>>>
>>> I am currently storing my object (which is a HashMap) like this:
>>>
>>> bucket.store(key, docHashMap).execute();
>>>
>>> What would I need to do to add an index to that object before it gets 
>>> stored?
>>>
>>> Thanks,
>>> Jeff
>>>
>>>
>>>
>>> _______________________________________________
>>> riak-users mailing list
>>> riak-users@lists.basho.com
>>> http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
>

_______________________________________________
riak-users mailing list
riak-users@lists.basho.com
http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com

Reply via email to