Riak钥匙中的特殊字符

时间:2012-03-20 15:32:18

标签: nosql riak

我想通过REST将带有特殊字符的密钥(在我的情况下为斜线)存储到Riak。

HowTo http://wiki.basho.com/Riak-Search---Querying.html#Fields说:

  

如果您的字段包含特殊字符,例如   ('+',' - ','/','[',']','(',')',':'或空格),然后围绕   单引号中的短语,或用a转义每个特殊字符   反斜杠。

但字段是关注的,而不是键。 我试图反斜杠,但不幸的是它没有用。

我找不到关于这个问题的任何信息。 有人知道如何在中屏蔽特殊字符吗?

示例(不工作):

PUT https://riak:8069/buckets/key/keys/11111\/2

其中key为 11111/2

1 个答案:

答案 0 :(得分:6)

这与Riak没有任何关系,而是你需要如何转义URL,以便服务器(包括Riak)不会将正斜杠解释为路径分隔符:

PUT https://riak:8069/buckets/key/keys/11111%2F2

然后您可以采用相同的方式检索它:

GET https://riak:8069/riak/key/11111%2F2

%2F是使用URL Encoding/的值 - 如果您的密钥包含在网址中被视为特殊字符的字符,则需要使用密钥执行此操作。

您可以通过在key存储桶中列出密钥来验证这在Riak中是否正常工作(在测试服务器上 - 不要在生产服务器上执行此操作,因为它非常昂贵):

GET https://riak:8069/riak/key?keys=true

在JSON输出结束时,您会发现:

... "keys":[...,"11111/2",...]}