Using UUID as keys is problematic for Riak Search

David James davidcjames at gmail.com
Sun Aug 10 18:59:47 EDT 2014


I'm using UUIDs for keys in Riak -- converted to bytes, not UTF-8 strings.
(I'd rather spend 16 bytes for each key, not 36.)

As I understand it, Yokozuna maps the Riak key to _yz_id.

Here is the suggested schema from the documentation:

<!-- schema.xml -->
<field name="_yz_id" type="_yz_str" indexed="true" stored="true"
 multiValued="false" required="true"/>
<fieldType name="_yz_str" class="solr.StrField" sortMissingLast="true"/>

Would you expect this to work with Riak Search? I would hope so.

(Or must keys be UTF-8 strings?)

I get this error, which does not surprise me, given that the _yz_id is
defined as a string:

==> log/error.log <==

2014-08-10 18:24:16.221 [error] <0.610.0>@yz_kv:index:206 failed to index
object
{<<"test-0001">>,<<94,143,33,35,45,180,78,164,151,237,72,81,56,13,28,250>>}
with error {ucs,{bad_utf8_character_code}} because
[{xmerl_ucs,from_utf8,1,[{file,"xmerl_ucs.erl"},{line,185}]},{mochijson2,json_encode_string,2,[{file,"src/mochijson2.erl"},{line,186}]},{mochijson2,'-json_encode_proplist/2-fun-0-',3,[{file,"src/mochijson2.erl"},{line,167}]},{lists,foldl,3,[{file,"lists.erl"},{line,1248}]},{mochijson2,json_encode_proplist,2,[{file,"src/mochijson2.erl"},{line,170}]},{mochijson2,'-json_encode_proplist/2-fun-0-',3,[{file,"src/mochijson2.erl"},{line,167}]},{lists,foldl,3,[{file,"lists.erl"},{line,1248}]},{mochijson2,json_encode_proplist,2,[{file,"src/mochijson2.erl"},{line,170}]}]
I don't think changing the schema.xml type for _yz_id to "solr.UUIDField"
is a good idea.

What can I do?

Thanks,
David
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.basho.com/pipermail/riak-users_lists.basho.com/attachments/20140810/5375af42/attachment.html>


More information about the riak-users mailing list